c - 在 C 中声明和初始化数组

标签 c arrays initialization

在C中有没有先声明再初始化数组的方法?

到目前为止,我一直在像这样初始化一个数组:

int myArray[SIZE] = {1,2,3,4....};

但是我需要做这样的事情

int myArray[SIZE];

myArray = {1,2,3,4....};

最佳答案

在 C99 中,您可以将复合文字与 memcpy

结合使用
memcpy(myarray, (int[]) { 1, 2, 3, 4 }, sizeof myarray);

(假设源的大小和目标的大小相同)。

在 C89/90 中,您可以通过声明一个额外的“源”数组来模拟它

const int SOURCE[SIZE] = { 1, 2, 3, 4 }; /* maybe `static`? */
int myArray[SIZE];
...
memcpy(myarray, SOURCE, sizeof myarray);

关于c - 在 C 中声明和初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137671/

相关文章:

python - 在创建表时执行 Django fixtures

c - 当输入不是数字时,进入无限循环

c - foo(int* arr) 和 foo(int arr[]) 有什么区别?

C - 获取用 popen 打开的进程的 PID

javascript - 为什么这个 Array.length if else 检查不起作用?

c - 为什么 arr[1] 打印的内容看起来像是 arr[0] ?

c - 在文件夹中查找特定文件并编辑它

c - 增加 int 指针值 - 不起作用

c++ - 子数组赋值 : initialization with "{...}" expected for aggregate object error

angular - 如何处理/通知用户 APP_INITIALIZER 中不可恢复的异常?