我声明一个字符串数组非常简单,硬编码,但它一直给我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"}
};
它声明了一个2D的const char *
数组。
请注意,如果您想要可以写入的字符串,那么上述方法将不起作用。