malloc内存分配,必须释放。否则内存泄漏?
#include <stdio.h>
#include <malloc.h>
int main(void)
{
char *ptr = (char*)malloc(10);
if(NULL == ptr)
{
printf("\n Malloc failed \n");
return 0;
}
else
{
free(ptr);
}
return 0;
}
刚才看了一道题。解释如下:
尽管上面的代码并没有释放分配给“ptr”的内存,但并不会在程序退出后导致内存泄漏。在程序结束后,所有这个程序分配的内存都会自动被处理掉。
这是为什么呢?
[解决办法]
这说明楼主看错了书,把错误结论/有限制条件结论当普遍真理了。