【发布时间】:2019-04-19 08:31:11
【问题描述】:
防止在堆内存上使用数组初始化符号 ({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;
我错过了什么吗?有没有简单的方法来预先安排一个数组?
【问题讨论】:
-
有趣的问题,但如果我们知道数组的元素为什么要使用 malloc,我认为这不是好方法。
-
问题是由于 Reasons™,C 不支持数组赋值