个指针变量已经指向一段内存空间,还可以new为之new一段空间吗

如题所述

指针变量是个存放内存地址的(特殊的)整数变量,所以你完全应该把他看做一个无符号的整数变量,只不过,它主要用来存放地址号的。

所以,你完全可以对一个指针变量new上个N次也没关系,就好比你重复对一个int变量进行无数次操作一样。问题是,原先new的内存地址被"冲洗"掉了,当一个指针指向一个地址空间,我们说这块内存有归属的,因为它被注册在你程序中,就是这个指针变量记录了这块内存,一旦指针变量的值被新new的地址覆盖替换,那么原先的内存块就没爹娘了,没人管了,这叫内存泄漏。随着程序运行时间推移,内存不断被占用又没释放,最后windows会报内存不足。

所以当你不用一块内存时需要用delete p来释放它,再new一块新的赋值给指针变量。
温馨提示:答案为网友推荐,仅供参考
相似回答