不调用free会内存泄露吗?
2017-01-07 15:53
169 查看
内存泄露的概念大家可以自行百度下,本文不做阐述。本文要讲的是在程序中分配了内存,但是最后没有使用free()函数来释放这块内存,会导致内存泄露吗?比如有如下代码:
#include <stdio.h>
int main()
{
char *p = (char *)malloc(1);
if(NULL == p)
{
printf("分配内存失败!\n");
return 0;
}
else
{
*p = 'a';
//free(p);
}
return 0;
}
在程序中,分配了一个字节大小的内存区域,并使得指针变量p指向这块内存区域。如果这块内存分配成功,则会把字符'a'存放在这块内存区域,并且没有调用free()函数来释放这块内存,会不会导致内存泄露呢?
答案是不会。在程序执行结束后,分配的内存区域会自动被系统处理掉。但是及时释放不用的内存区域则是一个良好的编程习惯,因此建议最后还是要使用free函数来释放掉!
#include <stdio.h>
int main()
{
char *p = (char *)malloc(1);
if(NULL == p)
{
printf("分配内存失败!\n");
return 0;
}
else
{
*p = 'a';
//free(p);
}
return 0;
}
在程序中,分配了一个字节大小的内存区域,并使得指针变量p指向这块内存区域。如果这块内存分配成功,则会把字符'a'存放在这块内存区域,并且没有调用free()函数来释放这块内存,会不会导致内存泄露呢?
答案是不会。在程序执行结束后,分配的内存区域会自动被系统处理掉。但是及时释放不用的内存区域则是一个良好的编程习惯,因此建议最后还是要使用free函数来释放掉!
相关文章推荐
- 不调用free会内存泄露吗?
- 原创: WINCE 内存泄露的检查(1) 对new/delete 或malloc/free在堆上申请的内存泄露的检查
- C语言中的malloc和free造成内存泄露?
- performSelector延时调用导致的内存泄露
- 调用cvCreateFileCapture引起的内存泄露
- 关于OC中self是调用属性的存取方法以及它可能出现的内存泄露情况
- Wcf 调用 web 服务造成的内存泄露
- 循环引用导致内存泄露 dealloc无法调用
- performSelector延时调用导致的内存泄露
- performSelector延时调用导致的内存泄露
- UIActionSheet关闭动画过程中调用delegate = nil 导致的内存泄露
- 错误调用CreateToolhelp32Snapshot导致内核内存泄露
- performSelector延时调用导致的内存泄露
- performSelector延时调用导致的内存泄露
- performSelector延时调用导致的内存泄露
- p重新调用多次new及delete的内存泄露问题
- 关于java递归调用内存泄露
- performSelector延时调用导致的内存泄露
- 引用,引用形参,指针形参与指向指针的引用形参,内存泄露及free相关
- 关于c语言内存分配,malloc,free,和段错误,内存泄露