如果没有正确分配,我应该在C中释放内存吗?
例如,当声明一个 malloc 然后检查它是否为 NULL 以查看它是否已正确分配时,如果它为 null,我应该释放内存,例如:
int *p;
p = (int *)malloc(sizeof(int));
if (p == NULL)
{
free(p); //Should I free here or will it create an error?
return NULL;
}
回答
如果malloc
返回一个空指针,它根本无法分配任何东西,并且没有任何东西可以释放。
话虽如此,将空指针传递给free
什么都不做,所以它是安全的。
在相关说明中,在 C 中,您不应该真正将malloc
.