gpt4 book ai didi

c - malloc 中的内存泄漏?

转载 作者:行者123 更新时间:2023-12-02 16:46:55 25 4
gpt4 key购买 nike

我在 C 中有以下错误代码,我想知道是否会发生内存泄漏,或者是否会有一个指向空闲内存位置的指针。

int* p = (int*) malloc(sizeof(int));
p = NULL;
free(p);

最佳答案

是的,它会泄漏内存。在释放它指向的内容之前,您将 p 分配给 NULL。一个快速的改变将修复它:

int* p = malloc(sizeof(int));
free(p);
p = NULL;

这里的不同之处在于,我们在将 p 设置为 NULL 之前释放了 malloc 分配的地址。一般来说,将指针设置为 NULL 不会释放内容,但可以让您检查指针是否有效,这有很多实际应用。

关于c - malloc 中的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60157873/

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