【发布时间】:2021-06-10 13:17:35
【问题描述】:
我想将整数数组的所有元素初始化为 -2。
我已经看到int A[10] = {0} 将所有 10 个元素初始化为 0 的各种答案。但是,我无法用 -2 重现它。
#include <stdio.h>
int main() {
int A[10] = {-2};
printf("%d",A[3]);
}
给出默认值 0 而不是 -2。
我该怎么做。关注的数组很大。
【问题讨论】:
-
没有捷径可走。
int A[10] = {-2, -2, -2, -2, -2, -2, -2, -2, -2, -2}... 或int A[10]; for (i = 0; i < 10; i++) A[i] = -2;您可以编写一个输出{ -2, -2, -2, ..., -2 }的程序并使用它来初始化您的数组。类似(虽然这是无效的 C 代码)int A[1000] = #include <Ainit.c>; -
关于在编译时将大数组初始化为特定值,请参阅stackoverflow.com/a/13488596/584518
-
"我该怎么做。相关的数组大小很大。" --> 意味着存在解决更高级别问题的更好方法。
-
@alex01011 我可以用
memset(&A[0], -1, 10*sizeof(int))用0 和-1 填充它,但不适用于其他整数。我还不精通内存管理,所以也许有人可以创建一个通用代码。