内存管理的bug 其实不叫bug 但是习惯不好很容易出错

2019-07-20 05:53发布

int main()

{
   ..... 一堆初始化

   ram_1();
  ram_2();

  //这里就会傻了   例如会申请变量的时候回给出 重复的地址  或者    地址范围重复  一旦出现这个问题要整个程序翻  到底哪里忘记释放了 搞死人了

}

ram_1()
{
  u8 *p;
  p=申请内存
  //忘记了释放
}

ram_2()
{
u8 *p;    《==局部变量名字相同
  p=申请内存
  //忘记了释放


}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-20 11:21
 精彩回答 2  元偷偷看……
simms01
2楼-- · 2019-07-20 13:13
就是 :

如果   在局部变量申请了 *p  内存  又没有释放, 再另外的函数 局部变量再申请变量 如果刚好变量名字相同 也是 *p  ,那么 内存管理部分就会傻掉

  例如申请出来的内存地址会覆盖之前已经申请的范围,把数据冲掉 ,或者 不管怎么释放 都不能释放新申请的内存。
HCHDaLeiGe
3楼-- · 2019-07-20 14:49
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-20 19:47
 精彩回答 2  元偷偷看……

一周热门 更多>