如何在类C++初始化二维字符指针
How could I initialize a two dimensional char pointer in C++ class
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
中的指针数组。这不是单个分配操作。
相关文章:
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何检查二维字符数组是否有空字
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 如何填充二维字符数组?C++
- 我如何用单词填充二维字符阵列
- 给出预定义的二维字符数组值
- 如何将二维字符类型数组逐行保存到 c 中的.txt文件中
- 二维字符数组C++
- 从C++文件中读取二维字符数组
- 将字符串复制到二维字符数组时出错
- 使用strncpy将字符串复制到二维字符数组中
- 比较 C++ 中的二维字符数组
- 给定一个二维字符矩阵,我们必须检查给定的单词是否存在于其中
- 正在将内存分配给二维字符数组,错误:从“void*”到“char**”的转换无效
- 在检查二维字符数组中的重叠时遇到麻烦
- 如何将字符变量存储为二维字符变量
- C/C++ 中的二维字符数组
- 将二维字符数组初始化为全空白时出现问题
- 对二维字符数组进行排序?C++