我查看了大多数相关文章,但不幸的是,我的具体案例无法获得令人满意的答案。
我正在使用第3方库,该库的结构具有char**
属性,需要填充该属性。我尝试了几乎所有我认为会有效的c ++语法并且可以正常工作的可想像的方法,但是尝试分配它时总是遇到运行时错误。
为了澄清起见,我应该说字符串数组应采用(我假设)文件名。
将此视为我们的代码: char** listOfNames; // belongs to the 3rd party lib - cannot change it listOfNames = // ???
所以我的问题是如何使用一个或多个字符串文件名来初始化此变量,例如:“ myfile.txt”?
还应该与c ++ 11兼容。
最佳答案
我认为您应该将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();
}