A為一個物件,按照下述的方式來釋放有什么問題嗎
A* b = new A[10];
for(int i = 0; i < 10; i++)
{
delete &b[i];
}
uj5u.com熱心網友回復:
b 是作為一個整體記憶體塊管理的, 不能單獨釋放其中的某個單元X * b = new X[n]
for(……)
{
……
}
delete [] b;
uj5u.com熱心網友回復:
沒有問題,但多此一舉A* b = new A[10];
。。。。。
delete [] b;
這樣就可以
uj5u.com熱心網友回復:
試試就知道了int* b = new int[10];
// for(int i = 0; i < 10; i++) delete &b[i];
delete []b;
uj5u.com熱心網友回復:
在debug下運行我那段程式不能正常退出 不知道啥原因uj5u.com熱心網友回復:
這么做會崩潰...uj5u.com熱心網友回復:
int* b = new int[10]; // b 是 一個指向 10個 int 的陣列uj5u.com熱心網友回復:
int* b = new int[10];// for(int i = 0; i < 10; i++) delete &b[i];
// choose one of these!
delete b;
// delete []b;
uj5u.com熱心網友回復:
為什么還要自己使用陣列??vector不是很好用嗎?
uj5u.com熱心網友回復:
想起來了,這樣做是不行的,因為記憶體是整塊分配的,你delete &b[0]的時候,整塊記憶體就洗掉了,你回圈后面的delete &b[i]注定會崩潰,
更進一步說 delete &b[0]應該是會成功的,但是,你delete &b[i]肯定失敗
uj5u.com熱心網友回復:
無new,無delete;無new[],無delete[]
uj5u.com熱心網友回復:
http://blog.csdn.net/cbnotes/article/details/38900799"delete 和 delete []的真正區別"
uj5u.com熱心網友回復:
借鄰居一套茶具,用完后你一件一件還試試?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/101155.html
標籤:基礎類
