別のCの質問:
タイプのポインタメンバーを持つ構造体があるとしましょうchar*。
構造体のインスタンスを初期化したいときは、次のように呼び出しますmalloc。
MyStruct* ptr = (MyStruct*)malloc(sizeof(MyStruct)
char*次に、メンバーに256バイトのメモリを割り当てます。
ptr->mem = (char*)malloc(sizeof(char)*256);
呼び出したときにポインタメンバーとそれが指すメモリは
どうなりますfree(ptr);か?valgrindでプログラムをチェックすると、メモリリークが発生していることがわかりますが、明示的に呼び出すfree(ptr->member);と、メモリリークが発生し、valgrindに「無効な空き」エラーが表示されます。
メンバーが指すメモリを管理する適切な方法は何ですか?