aという整数型のアドレスを関数に渡すとき – プログラミング – Home

aという整数型のアドレスを関数に渡すと...
 
通知
すべてクリア

aという整数型のアドレスを関数に渡すとき


TK
 TK
(@TK)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

関数内で、
a+3番地にbという値を入れたい場合、

function(int a)
{

*(a+3) = b;

return;
}

という記述でいいのでしょうか?


引用解決済
トピックタグ
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

>function(int a)
この時点で違うかと。


返信引用
シヴァ
 シヴァ
(@シヴァ)
ゲスト
結合: 22年前
投稿: 3
 

>という記述でいいのでしょうか?
コンパイルしてみんさい。
いっぱい叱られます。


返信引用
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

仮に「aが100だった」とした場合、「a+3番地」はいくつである、と想定していますか?
単純に「103」でしょうか、それとも「100 + 3 * sizeof(int)」でしょうか。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

X86 はバイト単位に番地があるので a 番地から3バイト離れたところが a+3 番地です

ですから
void func(char *a)
{
const char b=0x7f;
*(a+3) =b;
}
といったものならあなたのお望みに近いもになると思います

ワードマシンならまた別の解があることでしょうし、バイト単位に番地があっても
奇数番地にはアクセス(読み書き)できない(してはいけない)機械もあります


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました