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”的内存,但并不会在程序退出后导致内存泄漏。在程序结束后,所有这个程序分配的内存都会自动被处理掉。
这是为什么呢?
#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”的内存,但并不会在程序退出后导致内存泄漏。在程序结束后,所有这个程序分配的内存都会自动被处理掉。
这是为什么呢?
...全文
相关推荐
cc++经典面试试题及标准答案
cc++经典面试试题及标准答案.
C语言中多维数组的内存分配和释放(malloc与free)的方法
如果要给二维数组(m*n)分配空间,代码可以写成下面: 代码如下:char **a, i; // 先分配m个指针单元,注意是指针单元 // 所以每个单元的大小是sizeof(char *) a = (char **) malloc(m * sizeof(char * )); // 再分配n个字符单元, // 上面的m个指针单元指向这n个字符单元首地址 for(i = 0; i < m; i++) a[i] = (char * )malloc(n * sizeof(char )); 释放应该是: 代码如下:int i; for(i=0;i<m;i++) free((void *)a[i
malloc内存泄漏检测
通过宏定义检测malloc产生的内存泄漏,vc++ 6.0,vc++8.0可用。
c语言 malloc函数详解
主要介绍了c语言 malloc函数详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
malloc内存泄漏
内存泄漏


