有没有一种正确的方法可以将char指针数组复制到char指针数组c++

is there a proper way to copy char pointer array to char pointer array c++

本文关键字:char 指针 数组 c++ 复制 方法 一种 有没有      更新时间:2023-10-16

我做了一个这样的函数:

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>或其排序;然后,您甚至可以使用一些琐碎的运算符,如赋值运算符(=),这些运算符已经在这些容器中很好地实现了,您将非常出色:)