读书人

关于delete释放堆内存解决方法

发布时间: 2012-06-09 17:16:42 作者: rapoo

关于delete释放堆内存
char* top = new char[10];

top[0] = '0';
top[1] = '1';

top++;

cout << top << endl;

delete [] top;


这时候top并不是指向第一个元素,请问这样释放是否有问题,还是必须要求 top 指向第一个元素?

[解决办法]
有问题,必须指向第一个元素。。。。再就是,楼主最好不要轻易改变首地址的指向、、、
[解决办法]
delete的指针变量的地址应该与new申请内存时的返回地址相同,这样才能释放申请的内存,这样理解更恰当,只是这个地址与第一个元素的地址相同
[解决办法]
char* top = new char[10];
char *top_bak;
top_bak=top;

top[0] = '0';
top[1] = '1';

top++;

cout << top << endl;

delete [] top_bak;


读书人网 >C++

热点推荐