如何定义全局字符矩阵



>我正在定义一个包含另一个矩阵内容的描述的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

您可能需要

初始化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");
/* ... */

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

最新更新