可能重复:
Does free(ptr) where ptr is NULL corrupt memory?
Is it good practice to free a NULL pointer in C?
我有一个关于释放空指针的问题。
char *p = NULL;
free(p);
free(NULL)
会导致崩溃吗?
或者它取决于编译器?
答案 0 :(得分:3)
来自免费的手册页
void free(void *ptr);
free()函数释放指向的内存分配 PTR。如果ptr是NULL指针,则不执行任何操作。
如果您想从C手册本身获得确认
free函数导致ptr指向的空间 取消分配,即可用于进一步分配。如果是ptr 空指针,不会发生任何操作。
请参阅this文档的第313页。