码迷,mamicode.com
首页 > 其他好文 > 详细

动态内存会被自动释放吗?

时间:2014-06-26 22:39:36      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   ext   color   

       函数体内的局部变量在函数结束时自动消亡。很多人误以为示例7-6是正确的。理由是p是局部的指针变量,它消亡的时候会让它所指的动态内存一起完蛋。这是错觉!

void Func(void)
{
    char *p = (char *) malloc(100);    // 动态内存会自动释放吗?
}

 

我们发现指针有一些“似是而非”的特征:

1)指针消亡了,并不表示它所指的内存会被自动释放。

2)内存被释放了,并不表示指针会消亡或者成了NULL指针。

这表明释放内存并不是一件可以草率对待的事。也许有人不服气,一定要找出可以草率行事的理由:

    如果程序终止了运行,一切指针都会消亡,动态内存会被操作系统回收。既然如此,在程序临终前,就可以不必释放内存、不必将指针设置为NULL了。终于可以偷懒而不会发生错误了吧?

    想得美。如果别人把那段程序取出来用到其它地方怎么办?



动态内存会被自动释放吗?,布布扣,bubuko.com

动态内存会被自动释放吗?

标签:style   class   blog   code   ext   color   

原文地址:http://www.cnblogs.com/XiHua/p/3807847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!