字符数组初始化时出错

时间:2014-08-29 17:41:07

标签: c arrays

我像这样初始化了我的数组:     char x[]={'m'};

有效。 但对于以下行我得到错误:类型的大小未知或为零

char x[][]={{'m'},{'m'}}; 

char x[][]={{'m'}};

我无法找到错误的原因。

4 个答案:

答案 0 :(得分:1)

在定义2D数组时,必须指定列大小。

char x[][1]={{'m'}};

答案 1 :(得分:1)

您必须设置列数。编译器计算行数:

char x[][1]={{'m'},{'m'}}; 

答案 2 :(得分:0)

在c中你必须指定最合适的数组大小,所以放

char x[][1];

会起作用

答案 3 :(得分:0)

对于row major架构,您应至少指定列数。为什么?因为,在分配值时,编译器不知道如何在2D数组中分配它们。

所以,正如其他人已经说过的那样,试试这个:

char x[][1]={{'m'}};

char x[1][1]={{'m'}}; // note: specifying the number of rows is redundant