gpt4 book ai didi

C结构内存管理

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:08 25 4
gpt4 key购买 nike

另一道C题:

假设我有一个结构,它有一个 char* 类型的指针成员。

当我想初始化结构的一个实例时,我调用了malloc:

MyStruct* ptr = (MyStruct*)malloc(sizeof(MyStruct)

然后为char*成员分配256字节的内存:

ptr->mem = (char*)malloc(sizeof(char)*256);

当我调用时指针成员和它指向的内存会发生什么免费(指针);?当我用 valgrind 检查程序时,我发现我有内存泄漏,但是当我显式调用 free(ptr->member); 时,我仍然有内存泄漏并且 valgrind 显示“Invalid free”错误

管理成员指向的内存的正确方法是什么?

最佳答案

你必须先释放ptr->成员,然后是结构

free(ptr->member);
free(ptr);

关于C结构内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com