【问题标题】:How to delete an array of char* in C++如何在 C++ 中删除 char* 数组
【发布时间】:2018-04-07 04:09:06
【问题描述】:

我在网上搜索了这个问题,但没有找到答案。如果我的班级有一个这样声明的受保护成员:char * arr[3] = {"Blah", "Blah", "Blah"} 我需要在析构函数中删除这个成员吗?如果是这样,正确的语法是什么?谢谢!

【问题讨论】:

  • 如果你使用new,你只需要delete。所以不行。这是一个可以存储在堆栈中的数组字面量。
  • @PaulRooney 有什么方法可以将这种方法声明为动态的?会是char ** arr = new char*[3]; 吗?
  • 对字符串使用 std::string。您的编译器应该抱怨缺少 const。
  • @manni66 我不能使用字符串类,这是一个编程任务,他们希望所有字符串都存储为 char*
  • 指向字符串常量的指针必须是const char*。

标签: c++ arrays destructor


【解决方案1】:

我需要在析构函数中删除这个成员吗?

没有。

当然还有:

我不能使用 string 类,这是一个编程作业,他们希望所有字符串都存储为 char*

这是 C++ 赋值中一个非常愚蠢的限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2018-10-06
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多