- 締切済み
ポインタ参照すると変数が正しく見れない
なぜdata = &array;がNGなのかがわかりません。 NGの場合、read関数コール前後でdataのアドレスは変更されないようです。 #include <stdio.h> int array = 100; void read( int* data ){ data = &array; // NG *data = array; // OK } int main(){ int data; read( &data ); printf(" d : %d\n",data); return 0; } * 再現環境を簡易化したためこのプログラム自体の有効性はありません
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- aris-wiz
- ベストアンサー率38% (96/252)
回答No.5
- zwi
- ベストアンサー率56% (730/1282)
回答No.4
- aris-wiz
- ベストアンサー率38% (96/252)
回答No.3
- a-saitoh
- ベストアンサー率30% (524/1722)
回答No.2
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.1
お礼
”ここでのdeta2はmainのdata1のアドレスの『コピー』” という所をきちんと理解していませんでした。 data1そのものをdata2が指しているとばかり思っていました。 ありがとうございました。