是否有一种正确的方法将char指针数组复制到char指针数组c ++

时间:2016-04-01 12:58:41

标签: c++ arrays pointers char copy

我做了这样的功能:

void AddVariantItem(char *displayText, char **optionstext)<

这样我就可以在函数中放置一个char指针数组,如:

char *array[] = { "test" };
AddVariantItem("test", array);

我将数组保存在函数内部,以便以后使用

menuItem.optionstext = optionstext;

我将char复制到char指针我使用like(在函数外部)

sprintf_s(newDisplayText, sizeof(newDisplayText), "%s: < %s >", menuItem->vartext, menuItem->optionstext);

当我使用&#39; sprint&#39;上面,我崩溃了,因为menuItem->optionstext

是否有一种正确的方法将char指针数组复制到变量I中,试图将其保存到? optionstext被定义为char ** optionstext;在我已经制作的结构中

1 个答案:

答案 0 :(得分:0)

我认为你需要的是使用std::vector或那种容器进行管理 - 因为你的设计的失败点是你试图复制到一个未分配的空间。

如果你不使用分配存储助手(比如stl中的容器等),你必须为这些对象列表管理你自己的分配 - 释放方案,实现起来非常繁琐(特别是如果你不小心,甚至有问题)并且大部分时间都是不必要的 - 因为容器非常适合他们的工作。

使用std::vector<std::string>或那些菜单选项排序;然后你甚至可以使用诸如赋值运算符(=)之类的普通运算符,这些运算符已经在这些容器中很好地实现了并且你将是盛大的:)