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