- ベストアンサー
free()について
free()についてです。 よろしくお願いします。 ある構造体Aがあったとして その構造体Aの中に構造体Bのポインタが あったとします。 typedef struct{ char b; short c; } B_t; typedef struct { int a; B_t *bbb; } A_t; この構造体をプログラム中でポインタで扱い mallocで領域確保している場合に(A,B共に) Aをfree()した場合は、Bも開放されるのでしょうか? 以下、質問のサンプルです。 A_t *aaa; aaa = (A_t *)malloc(sizeof(A_t)); aaa->bbb = (B_t *)malloc(sizeof(B_t)); : : free(aaa); /* ←これで、aaaのメンバであるbbbは */ /* 開放されるのでしょうか? */ よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- joe-
- ベストアンサー率34% (11/32)
回答No.3
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
回答No.2
補足
はい、おっしゃるとおりC言語です。 そうですか。開放されないのですか。 確かに本文中のA_t型のsizeofはint4バイトと ポインタのアドレス4バイトで8バイトですもんね。。 開放されないとすると、bbbを開放する前に aaaを開放してしまった場合は、メモリリーク って事ですか。。。