簡體   English   中英

指向共享對象的指針數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM