簡體   English   中英

字符指針的內存釋放

[英]Memory deallocation for char pointer

部分來自我的代碼:

class Menuitem
{
private:
    char* text;

    friend class Menu;
};

class Menu
{
private:
    char* title;
    Menuitem* items;
    int identation = 0;
    int amount = 0;
};

如果我執行delete[] items ,它是否也會安全地刪除保存在items text 還是我需要單獨刪除它們?

如果我執行delete[] items ,它是否也會安全地刪除保存在items文本?

不是發布的代碼。

還是我需要單獨delete它們?

是的。

如果您正在嘗試了解內存分配/解除分配的工作原理,最好了解這些問題並學習如何正確使用newdelete 當您管理動態內存時,了解三定律並遵守它是必不可少的。

如果您試圖使應用程序處於工作狀態,最好避免使用原始指針。 使用標准庫中的容器。

class Menuitem
{
  private:
    std::string text;  // No char*

    friend class Menu;
};

class Menu
{
  private:
    std::string title;  // No char*
    std::vector<Menuitem> items; // No MenuItem*
    int identation = 0;
    int amount = 0;
};

然后,您在應用程序代碼中需要擔心的問題更少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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