阻止在堆内存上使用数组初始化符号 ({1,2,3...}
) 背后的逻辑目的是什么?似乎现在已经添加到标准中的功能......
如果这是可能的,那岂不是很有意义:
int *list;
list = malloc(sizeof(*list)*3);
*list = {1, 2, 3}; // error
但是必须这样做:
int *list;
list = malloc(sizeof(*list)*3);
list[0] = 1;
list[1] = 2;
list[2] = 3;
我错过了什么吗?有没有简单的方法来预先安排一个数组?
最佳答案
我会使用复合文字和 memcpy
来初始化。
memcpy(list,(int[]){1, 2, 3},3*sizeof(int)); // error
或者干脆不使用 malloc'
ing。
list = (int []){1,2,3};
关于c - 在堆数组上使用数组初始化符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758886/