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

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