另一个C问题:
假设我有一个具有类型指针成员的结构char*
。
当我想初始化我调用的结构实例时malloc
:
MyStruct* ptr = (MyStruct*)malloc(sizeof(MyStruct)
然后为成员分配 256 字节的内存char*
:
ptr->mem = (char*)malloc(sizeof(char)*256);
当我调用时,指针成员和它指向的内存会发生什么
free(ptr);
?当我用 valgrind 检查程序时,我发现我有内存泄漏,但是当我明确调用时,free(ptr->member);
我仍然有内存泄漏,并且 valgrind 显示“无效的免费”错误
管理成员指向的内存的正确方法是什么?