内存泄露,野指针

2017-09-06  本文已影响0人  鲨漠里的鱼

        堆是动态分配内存的,并且可以分配使用很大的内存,使用不好会产生内存泄露。频繁地使用malloc和free会产生内存碎片。

所谓内存泄露,是指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。一般常说的内存泄露是指堆内存的泄露,内存泄露其实并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存浪费。

野指针:是指指向不可用内存的指针。

产生野指针的三种情况:

1.任何指针变量在被创建时,不会自动成为NULL指针(空指针),其默认值是随机的,所以指针变量在创建的同时应当被初始化,或者将指针设置为NULL,或者让它指向合法的内存,而不应该放置不理,否则就会成为野指针。

2.由于指针被释放后(free或delete),未能将其设置为NULL,也会导致该指针变为野指针。

3.造成野指针的原因是指针操作超越了变量的作用范围。

上一篇下一篇

猜你喜欢

热点阅读