C多维数组字符串

我正在声明一个字符串数组非常简单,硬编码,但它一直给我array type has incomplete element type错误。

我想这与每个数组的长度有关但我不知道如何修复它而不设置字符串的固定长度。

 char allocate[][2][] = { // Error with or without the 2 {"value1","value2"}, {"value3","value4"} }; 

该语法无效。 如果需要真正的多维数组,则必须指定所有维度,第一个除外。 (编译器必须知道“内部”数组有多大才能执行外部维度的地址计算。)

试试这个:

 const char *allocate[][2] = { {"value1","value2"}, {"value3","value4"} }; 

它声明了一个const char *的2D数组。

请注意,如果您想要可以写入的字符串,那么上述方法将不起作用。