我做了这样的功能:
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;在我已经制作的结构中
答案 0 :(得分:0)
我认为你需要的是使用std::vector
或那种容器进行管理 - 因为你的设计的失败点是你试图复制到一个未分配的空间。
如果你不使用分配存储助手(比如stl中的容器等),你必须为这些对象列表管理你自己的分配 - 释放方案,实现起来非常繁琐(特别是如果你不小心,甚至有问题)并且大部分时间都是不必要的 - 因为容器非常适合他们的工作。
使用std::vector<std::string>
或那些菜单选项排序;然后你甚至可以使用诸如赋值运算符(=)之类的普通运算符,这些运算符已经在这些容器中很好地实现了并且你将是盛大的:)