【发布时间】:2012-11-18 19:16:14
【问题描述】:
我知道结果
int *x = malloc(sizeof(int)*100);
和
int x[100];
一样,但是第一个分配堆内存,第二个分配堆栈内存。
现在我需要创建一个巨大的数组(大约 10000 个元素,不在一个模式中),我认为 malloc() 更合适。
但是当我准备初始化数组时,我遇到了一个问题。 我不能使用任何循环来初始化数组,如何初始化使用 malloc 创建的数组,就像使用
int x[100] = {1,2,3,4,......,6,7,5};
【问题讨论】:
-
你不能循环初始化你的动态数组,因为......?
-
我不能使用任何循环来初始化数组 - 为什么不呢?
-
StackOverflow 经验法则 #3 生效:“如果 OP 说‘我知道’,他们不会。”
-
x[0]=0; x[1]=1; x[2]=2;...看,没有循环! -
int *x = malloc(sizeof(int)*100);和int x[100];不一样,不仅仅是因为堆栈和堆。
标签: c arrays initialization malloc