char指针的内存释放

问题描述 投票:0回答:1

我的代码中的部分:

class Menuitem
{
private:
    char* text;

    friend class Menu;
};

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

如果执行delete[] items,是否还会安全删除保存在text中的items?还是我需要分别删除它们?

c++ memory-leaks dynamic-memory-allocation
1个回答
1
投票
如果我要执行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; };

然后,您不必担心应用程序代码中的问题。

© www.soinside.com 2019 - 2024. All rights reserved.