c - 使用 C 中的常量列表初始化多维数组的一部分

标签 c arrays multidimensional-array

假设我有一个数组

int A[2][2];

我只想用常量列表初始化第一行,如下所示

A[0] = {
    1,
    2
};

不幸的是编译器返回。

错误:

expected expression before '{' token_.

虽然这个例子很小,但想得很大。我知道有一些愚蠢的方法可以做到这一点,但如果没有有效的解决方案,我会感到震惊。

最佳答案

初始化器不是这样工作的。您应该在声明时将其初始化为

int A[2][2] = { {1, 2} };        // Rest elements will be initialized to 0

或使用指定的初始值设定项

int A[2][2] = { [0] = {1, 2} };  // C99 and later

关于c - 使用 C 中的常量列表初始化多维数组的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001264/

相关文章:

java - 数组索引越界,使用多维数组作为游戏板

C:尝试将字符串文字 "abc"分配给大小为 3 的数组,valgrind 检测到错误

javascript - 尝试遍历包含对象数组的数组,以匹配数据

java - 在 TextView 中打印数组

c - C 中是否有数组大小/长度的快捷方式?

Python - 有没有办法为多维数组实现 __getitem__?

ios - 如何在 swift 4 中获取结构的分组数组?

c - 左值需要作为赋值的左操作数吗?

c - SIMD 内在函数 - 段错误

c - 使用 OpenSSL RSA_private_decrypt() 函数时出错