如何定义全局字符矩阵?

时间:2019-06-13 16:48:50

标签: c

我正在定义一个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

1 个答案:

答案 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");
/* ... */

同样,此代码不是用于头文件。