释放空指针

时间:2012-11-20 10:59:07

标签: c free

  

可能重复:
  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)会导致崩溃吗?

或者它取决于编译器?

1 个答案:

答案 0 :(得分:3)

来自免费的手册页

void  free(void *ptr);
  

free()函数释放指向的内存分配   PTR。如果ptr是NULL指针,则不执行任何操作。

如果您想从C手册本身获得确认

  

free函数导致ptr指向的空间   取消分配,即可用于进一步分配。如果是ptr   空指针,不会发生任何操作。

请参阅this文档的第313页。