1
我声明一个字符串数组非常简单,硬编码,但它不断给我array type has incomplete element type
错误。C多维数组字符串
我想这与每个数组的长度有关,但我不知道如何解决这个问题,没有为字符串设置固定的长度。
char allocate[][2][] = { // Error with or without the 2
{"value1","value2"},
{"value3","value4"}
};
所以这个数组包含指向字符串的指针(然后将其存储在数组之外?)如果删除了'const'关键字,你不能写入字符串吗? – 2011-04-30 13:44:44
@J V:不,这是未定义的行为(尽管通常你会得到一个seg-fault)。字符串文字是只读的,实际上应该总是用'const char *'指向。 C允许你使用'char *'的唯一原因是出于一些向后兼容性问题。 – 2011-04-30 13:48:43