[英]Array of pointers, to shared objects
我有一個數組列表,其中包含指向現有靜態對象的指針的數組。 不知何故,它設法泄漏大量內存。
Fruit fruits[20];
Fruit **list;
void addFruites()
{
list = new Fruit*[10];
for(int i=0; i<10; i++)
{
list[i] = &fruits[i];
}
}
到目前為止,一切似乎都在進行。 但是每當我要刪除(列出)時:
delete []list;
它似乎崩潰了。
救命!!
我想你可能想做
list = new Fruit * [10];
如果list
應該是一個Fruit
指針數組。 下列:
list = new Fruit[10];
使用默認構造函數而不是10個指向Fruit
對象的指針為10個新Fruit
對象分配內存。
我想這條線
list = new Fruit[10];
是一個錯字,並且*
丟失了。 否則,代碼將無法編譯。 假設這樣,您在此處顯示的代碼沒有錯。 (從技術上講,絕對可以不同意該設計。)問題出在其他地方,可能是對自由空間領域的破壞。 (嘗試在valgrind下運行代碼,並查看其內容。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.