【发布时间】:2016-03-10 15:35:53
【问题描述】:
我知道这个问题非常基础,但即使在网上进行了长时间的搜索后,我也找不到解决问题的方法。我想熟悉 C 中的动态数组,特别是使用 malloc() 进行分配和使用 memset() 进行初始化,所以这是我的代码:
#include <stdlib.h>
int main()
{
double *d;
int numElements = 3;
size_t size = numElements * sizeof(double);
d = malloc(size);
memset(d,1.0,size);
int i;
for(i=0; i < numElements; i++)
printf("%f\n",d[i]);
return 0;
}
但我得到的输出与我期望的不同
0.0
0.0
0.0
拜托,谁能这么温柔地解释一下我做错了什么?
谢谢!
【问题讨论】:
-
@MikeCAT 如果我不转换 malloc() 的结果,我会得到相同的结果
-
这应该向您表明演员阵容完全没有意义,这就是您不应该使用它的原因 - 它只会增加混乱。