有没有一种正确的方法可以将char指针数组复制到char指针数组c++
is there a proper way to copy char pointer array to char pointer array c++
我做了一个这样的函数:
void AddVariantItem(char *displayText, char **optionstext)<
这样我就可以在函数中放置一个字符指针数组,比如:
char *array[] = { "test" };
AddVariantItem("test", array);
我将数组保存在函数内部,以便以后使用
menuItem.optionstext = optionstext;
我正在将字符复制到我正在使用的字符指针上,比如(函数外)
sprintf_s(newDisplayText, sizeof(newDisplayText), "%s: < %s >", menuItem->vartext, menuItem->optionstext);
当我使用上面的"sprint"时,我崩溃了,这是因为menuItem->optionstext
有没有合适的方法将char指针数组复制到我试图保存它的变量中?optionstext被定义为char**optionstext;在一个结构中,我制作了
我认为您在这里需要的是使用std::vector
或那种容器进行管理,因为您的设计的失败点是您试图复制到未分配的空间中。
如果你不使用已分配的存储助手(如stl中的容器等),你就必须为这样的对象列表管理自己的分配解除分配方案,而且实现起来非常乏味(尤其是如果你不小心,甚至有问题),而且大多数时候都是不必要的,因为容器非常擅长它们的工作。
对这些菜单选项使用std::vector<std::string>
或其排序;然后,您甚至可以使用一些琐碎的运算符,如赋值运算符(=),这些运算符已经在这些容器中很好地实现了,您将非常出色:)
相关文章:
- 构造函数 (C++) 中的 char 指针参数存在问题
- 将 char 指针传递给接受对 char 数组的引用的函数
- 分配值时,C++ char* 指针上的前递增与后递增
- char指针或char变量的默认值是多少
- 为什么为char指针分配内存不会截断char序列
- 愚蠢的问题:strcat和char指针
- 使用 ctypes 从函数返回字符串C++会给出大的 int,而不是 char 指针
- 打印char指针的Unicode和文本值
- 应对 std::字符串中的 std::<char>指针转换后的向量
- 一系列char指针
- 为什么可以将Char指针变量初始化为字符串,而INT指针变量不能初始化到整数数组
- 将char指针传递给cin和cin.get()
- 在C和C++中,将int值转换为char指针的差异
- std :: cout null char*指针中止该程序
- char指针违反访问权限
- const char指针在结构中声明
- 将字符串转换为 char 指针可以指向的 char 数组/值的最有效方法是什么
- 将Char指针数组传递到C 中的函数
- 获取错误C2440:char []* char*(指针)
- 删除Char指针在destructor中不起作用