C alloc / free struct arr

C alloc / free struct arr

提问人:K V 提问时间:6/6/2021 更新时间:6/6/2021 访问量:67

问:

我想确保它是正确的,因为idk如何在没有任何复杂工具或跟踪器的情况下肯定地验证它(也许有可能\w gdb)。 I malloc arr of struct 如下所示:

typedef struct {
     int a;
} A;
A *arr = malloc(sizeof *arr * 5);
arr[2].a = -9;

然后释放一个简单的

free(arr); //because it's not an array of pointers of structs

这是正确的释放方式吗?

c 结构 自由 alloc

评论

2赞 Tom Karzes 6/6/2021
是的。只需将相同的指针传递给返回的指针即可。freemalloc
1赞 Nate Eldredge 6/6/2021
valgrind 和 AddressSanitizer 是帮助查找内存分配错误的好工具。它们使用起来并不复杂。
0赞 Support Ukraine 6/6/2021
“//因为它不是结构的指针数组”,这是无关紧要的,但是......您的代码是正确的
0赞 K V 6/6/2021
@4386427这是因为如果我制作一个结构体指针数组,我必须 ''' for (i in arr) free(arr[i]);免费(arr) ''
0赞 K V 6/6/2021
@NateEldredge我会检查谢谢

答: 暂无答案