我在C语言中有以下错误的代码,我想知道是否会发生内存泄漏,或者是否有指向可用内存位置的指针。
int* p = (int*) malloc(sizeof(int)); p = NULL; free(p);
您将发生内存泄漏。
您对free的呼叫将尝试释放NULL,无所事事。
free
NULL
是,它将泄漏内存。在释放指向的内容之前,将p分配为NULL。快速更改将解决此问题:
int* p = (int*) malloc(sizeof(int)); free(p); p = NULL;