局部变量未初始化就有值了是内存溢出吗?

2019-07-20 23:34发布

很奇怪的事情,因为出现了一些乱码,进debug追踪,发现有局部指针变量未初始化就有值了,这是内存溢出还是什么鬼?如果是溢出的话怎么找到溢出的源头?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
brucewoo
2019-07-21 15:32
yuyan 发表于 2019-6-20 09:46
原来这样啊,我印象中都初始化了,这里说的局部指针未初始化就有值是说在初始化语句之前就有值了,只是有 ...

当你你定义一个指针,例如 int* pPointer;
这时它本身的值是随机的,即他指向一个随机的地址,这个地址可能是不合理的,可能是别的变量的,也可能刚好是没有使用的内存的。
如果这时你直接就使用了,例如 *pPointer =123;  这样你就是往这个随机的地址写入了数据,有可能会导致严重的后果。
所以良好的习惯是,定义时马上分配空间。作用域结束时释放该指针。

一周热门 更多>