我查看了大部分相关帖子,但遗憾的是我无法得到满意的答案。
我使用的第三方库的结构属性为char**
,我需要填充它。我尝试了几乎所有可以想象的东西,我认为它是有效的c ++语法并且可以工作,但是我总是在尝试分配它时遇到运行时错误。
为了澄清我应该说字符串数组应该采用(我假设)文件的名称。
将此视为我们的代码:
char** listOfNames; // belongs to the 3rd party lib - cannot change it
listOfNames = // ???
所以我的问题是如何用一个或多个字符串文件名初始化这个变量,例如:“myfile.txt”?
也应与c ++ 11兼容。
答案 0 :(得分:1)
像
这样的东西char** listOfNames; // belongs to the 3rd party lib - cannot change it
try
{
listOfNames = new char*[10] { "Hello", "world", ... };
}
catch (std::exception const& e)
{
// delete the arrays here...
// ...
std::cout << e.what();
}
答案 1 :(得分:0)
我认为您应该将listOfNames
初始化为动态字符串数组,然后按以下代码初始化数组的每个元素:
char** listOfNames; // belongs to the 3rd party lib - cannot change it
int iNames = 2; // Number of names you need
try
{
// Create listOfNames as dynamic string array
listOfNames = new char*[iNames];
// Then initialize each element of the array
// Element index must be less than iNames
listOfNames[0] = "Hello";
listOfNames[1] = "World";
}
catch (std::exception const& e)
{
std::cout << e.what();
}