通知
すべてクリア
Topic starter
2004年2月6日 4:29 PM
関数内で、
a+3番地にbという値を入れたい場合、
function(int a)
{
*(a+3) = b;
return;
}
という記述でいいのでしょうか?
2004年2月6日 4:34 PM
>function(int a)
この時点で違うかと。
2004年2月6日 7:17 PM
>という記述でいいのでしょうか?
コンパイルしてみんさい。
いっぱい叱られます。
2004年2月6日 8:42 PM
仮に「aが100だった」とした場合、「a+3番地」はいくつである、と想定していますか?
単純に「103」でしょうか、それとも「100 + 3 * sizeof(int)」でしょうか。
2004年2月6日 9:49 PM
X86 はバイト単位に番地があるので a 番地から3バイト離れたところが a+3 番地です
ですから
void func(char *a)
{
const char b=0x7f;
*(a+3) =b;
}
といったものならあなたのお望みに近いもになると思います
ワードマシンならまた別の解があることでしょうし、バイト単位に番地があっても
奇数番地にはアクセス(読み書き)できない(してはいけない)機械もあります