可变长度数组的数组

Hes*_*aqi -1 c++ arrays

通常,我们可以这样写:

const char* names1[] = { "Stack", "LongerThanStack" };
const char* names2[] = { "Overflow", "LongerThanOverflow", "O" };
Run Code Online (Sandbox Code Playgroud)

如何制作一个names包含上述两个数组的新数组?

二维数组应该这样做.我尝试了以下代码,但G++由于内部数组的长度可变,因此不接受它.

const char* names[2][] = {{ "Stack", "LongerThanStack" }, 
                    { "Overflow", "LongerThanOverflow", "O" }};
Run Code Online (Sandbox Code Playgroud)

Nei*_*irk 7

除非你迫切需要,否则这样做:

std::vector<std::vector<std::string>> names = {{ "Stack", "LongerThanStack", "S" }, { "Overflow", "LongerThanOverflow", "O" }};
Run Code Online (Sandbox Code Playgroud)

  • @Connor Bounds检查错误,动态大小没有手动内存管理,因此没有泄漏. (3认同)