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

2019-07-20 23:34发布

很奇怪的事情,因为出现了一些乱码,进debug追踪,发现有局部指针变量未初始化就有值了,这是内存溢出还是什么鬼?如果是溢出的话怎么找到溢出的源头?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
0x00000000
2019-07-21 12:45
看来你对底层不了解呀!你以为这是MSC-8051呢,就那一点内存空间,一上电,Startup.A51里的代码把内存全部清零了?STM32中startup.s里面可没有这种代码,所以上电后每一个内存单元的内容是完全随机的。你声明一个指针,编译器按照一定规则在内存中分配一个字的空间,如果是临时变量,有很大概率直接映射到寄存器上。但是这些地方的初值是无法确定也是无需关心的。因为你创建一个指针变量实体后,编译器将某个存储单元确定为该变量,你必须对其进行初始化冲刷掉原来的无用的,不定的值,这样你的程序才可以用。否则你想让你的程序试试上帝是如何掷 {MOD}子的吗?哪怕是内存全部初始化为0,那你新声明的变量初值最好的也还是0,一样不能直接使用,也更内存溢出毫无关系。

一周热门 更多>