我查看了大多数相关文章,但不幸的是,我的具体案例无法获得令人满意的答案。

我正在使用第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();
}

08-17 00:22