質問: &list; printf("構造体のアドレスは%p\n", p); printf("nextのアドレスは%p\n", p->next); printf("構造体メンバbodyのアドレスは%p\n",&( p->body)); return 0; } ``` 実行結果 ``` 構造体のアドレスは003AFAA0 nextのアドレスはCCCCCCCC 構造体メンバbodyのアドレスは003AFAA4 続行するには何かキーを押してください . . . ``` bodyが4バイトなのはわかるんですが、結局この構造体のメモリの容量は何バイトなのでしょうか。
回答: > > 以下のコードを実行してメモリがどこに置かれているのか確認してみました。 > > nextは全く違う領域にあるという事でしょうか。 > > > 他の方の回答にありますように, 初期化されていないアドレスが指定されているだけです. > > bodyが4バイトなのはわかるんですが、 > > 結局この構造体のメモリの容量は何バイトなのでしょうか。 > > > `int` や `strcut LIST *`(ポインタ) は実行するPC環境によって異なるので 質問されている構造体のサイズについて, これだと言える数値は答えられません. なので, `sizeof()` を使用してサイズを確認してください.