如何在类C++初始化二维字符指针

How could I initialize a two dimensional char pointer in C++ class

本文关键字:二维 字符 指针 C++ 初始化      更新时间:2023-10-16
class Tool
{
public:
    Tool();
    ~Tool();
private:
    char **s;
};
char *s1[]={"hello","world"};

如何初始化s并使其与s1相同?

s={"hello","world"}

似乎不起作用。

虽然你可以使用std::vector<std::string>,但我觉得直接回答你的问题对你更有利。

char** s 是指向指针的指针;可能是指向指针数组中第一个指针的指针。

char* s1[] 是指向 const 数据的指针数组(实际上应该const

(。

如果你想让s的工作方式类似于s1,你首先需要分配指针数组,这就是其他人推荐std::vector的原因。你可以自己做 new ,但你必须在某个时候释放分配的内存。直接使用new容易泄漏。 std::vector将在对象被销毁时释放其分配的内存。如果您愿意,您也可以在析构函数中调用delete[]

分配数组后,您需要std::copy指针数组,s1指向 s 中的指针数组。这不是单个分配操作。