动态内存的问题

来源:互联网 发布:windows软件包 编辑:程序博客网 时间:2024/04/27 19:16

  函数体内的局部变量在函数结束的时候不会自动消亡;

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

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

 

 “野指针” 不是NULL指针,而是指向“非法”内存的指针,人们一般不会错用NULL指针,因为if语句很容易判断,

 但是“野指针”很危险,if语句对它不起作用的。

 

 “野指针”的成因:

  (1) 没有初始化指针变量,任何指针变量刚创建时不会自动成为NULl,它的默认是随机的,所以指针在创建的同时应该初始化,

   要么设置为NUL,或者指向有效的内存地址;

 (2 )指针P被free或者delete后,没有置为NULL,让人误认为P仍然是有效的指针,

 (3) 指针操作超越了变量的作用范围。