[英]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
它們?
是的。
如果您正在嘗試了解內存分配/解除分配的工作原理,最好了解這些問題並學習如何正確使用new
和delete
。 當您管理動態內存時,了解三定律並遵守它是必不可少的。
如果您試圖使應用程序處於工作狀態,最好避免使用原始指針。 使用標准庫中的容器。
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.