【发布时间】:2012-04-01 15:12:51
【问题描述】:
我有代码可以动态地将一个包含 100 个双精度的数组分配给一个指针,并用 1.0 到 100.0 的值初始化内存。
我的问题是,在下面的代码中,为什么我不必在 for 循环的每次迭代中编写 *ptr++。我试过了,还是不行。
void allocate_array(){
double *ptr;
ptr= (double*)malloc(sizeof(double)*100);
int i=0;
float j=0.0;
for(i=0;i<100;i++){
*ptr=j++;
printf(" %0.1lf\n",*ptr);
}
}
【问题讨论】:
-
你不需要吗?您将
0.0, 1.0, ...值全部分配给数组的第一个索引。而且你永远不会为其他索引分配任何东西。所以你确实输出了你想要的所有值,但你的数组看起来像:{99.0, ???, ???, ...}