我正在定义一个char矩阵,其中包含对另一个矩阵的内容的描述;这个矩阵应该是全球性的。在我的一个标题中,我写了以下内容:
char descr[6][20];
descr[0][] = "name0";
descr[1][] = "name1";
descr[2][] = "name2";
descr[3][] = "name3";
descr[4][] = "name4";
descr[5][] = "name5";
编译时出现以下错误:
../../include/header1.h:56:1: warning: data definition has no type or storage class
descr[0][] = "name0";
../../include/header1.h:56:1: warning: type defaults to ‘int’ in declaration of ‘descr’ [-Wimplicit-int]
../../include/header1.h:56:1: warning: ISO C forbids zero-size array ‘descr’ [-Wpedantic]
../../include/header1.h:56:1: error: array type has incomplete element type ‘int[]’
出什么问题了?我正在使用c89
答案 0 :(得分:3)
您可能想初始化您的descr
char descr[6][20] = {
"name0",
"name1",
"name2",
"name3",
"name4",
"name5", /* you may leave the last comma out */
};
这种初始化不(通常)进入头文件。
如果您不想初始化并且喜欢以后的赋值(例如在原始代码中),请使用strcpy
。
char descr[6][20];
strcpy(descr[0], "name0");
/* ... */
同样,此代码不是用于头文件。