读书人

为何vs2008的字符数组不会自动释放

发布时间: 2013-03-27 11:22:42 作者: rapoo

为什么vs2008的字符数组不会自动释放

请大家帮忙给看看,我觉得,程序在执行return pic_name之后,char pic_name[128]会释放掉,为什么它还有值呢。 c++ 数组指针
[解决办法]
为什么这么多人都觉得“内存释放后里面就没值了”呢?

[解决办法]
要 } 执行完后才会释放.
而且释放也仅指别人会重新使用这块内存, 但在真正被写入之前它的值也不会变.
[解决办法]

引用:
你好,我的标题已经说明了是vs2008,而且据我了解,如果变量中是这样的乱码,那他本身就是没有内容,被清空的含义了。
你的了解是错误的
释放对象的内存 只是这块内存可以被其他地方使用的意思
[因为能被其他地方使用 所以里面的值是什么是不可靠的]
没有清空内存的作用 没有置零内存的作用
[解决办法]
引用:
很抱歉,因为是刚开始接触,只有通过单步调试来发现问题,解决问题,我不知道你是怎么判断问题出处的,如果不用监视窗口,那我怎么查看它里面的内容具体怎么个变化呢,如果你有好的建议,那烦请你说出来大家一起学习学习。很是感激。

监视窗口可以用来观测变量的值,也仅仅是“可以用来观测”而已
它没资格说某个变量存在与否,它不能判断某块内存是否有意义,它甚至不能保证它自己的所有功能在所有情况下均有效
监视窗口,和其他各种各样的调试功能,都只是给你提供线索,如果你自己没能力利用这些线索,那就该去补充基础知识,而不是用你的“觉得”和“理解”来曲解这些线索

为什么数组不会自动释放?
最本质的答案就是“因为释放栈内存只是移动栈指针”,至于为什么这样,去看汇编语言和编译原理,先了解一下什么叫栈什么叫寄存器

读书人网 >C语言

热点推荐