malloc中的内存泄漏?

问题描述 投票:1回答:2

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

int* p = (int*) malloc(sizeof(int));
p = NULL;
free(p);
c memory-management memory-leaks malloc
2个回答
1
投票

您将发生内存泄漏。

您对free的呼叫将尝试释放NULL,无所事事。


1
投票

是,它将泄漏内存。在释放指向的内容之前,将p分配为NULL。快速更改将解决此问题:

int* p = (int*) malloc(sizeof(int));
free(p);
p = NULL;
© www.soinside.com 2019 - 2024. All rights reserved.