首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-06-09 
关于delete释放堆内存char* top new char[10]top[0] 0top[1] 1top++cout top endlde

关于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;


热点排行