全球字符阵列(2D)

Global char array (2D)

本文关键字:2D 阵列 字符      更新时间:2023-10-16

我正在尝试在C 中声明一个全局6x6 char数组,并用字母'i'来初始化整个数组。

 char result[] = new char[6][6];
 result={{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},
{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},{'I','I','I','I','I','I'}};

获得的错误:1.错误:数组初始化器必须是初始化列表或 字符串字面量2. C 需要所有声明的类型指定符。如果我在main()中初始化,则此错误消失了

查询解决。

您是否尝试过'i'而不是只是?像

char result[] = new char[6][6];
result={{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},{'I','I','I','I','I','I'},{'I','I','I','I','I','I}};

您以不同的步骤进行定义和初始化。首先,您无法在全局范围(例如作业)中具有一般性语句。其次,您无法真正分配给数组。第三,您没有数组并尝试更改指针。

错误是第一个原因。

简单的解决方案是使用实际数组,并在一个步骤中进行定义和初始化:

char result[6][6] = {
    { 'I', 'I', 'I', 'I', 'I', 'I' },
    { 'I', 'I', 'I', 'I', 'I', 'I' },
    ....
};

要使用编译时常数char值,您需要用一对逗号包围角色:'i''。您的程序试图将命名 i 变量或常数的值放入数组中。