【发布时间】:2014-09-12 15:57:19
【问题描述】:
我正在尝试使用 for 循环将值分配给 C 中的数组(我正在使用 minGW)。起初我尝试做:
double flag[5] = {0.1};
但这只是将数组中的第一个变量分配给 0.1。然后我尝试做一个 for 循环来单独分配每个。我不想硬编码的原因是因为我希望标志变量的大小能够灵活地适应用户的输入。我当前的代码如下所示:
int cnt;
double flag[5];
for (cnt = 0; cnt < sizeof(flag); cnt++) {
printf("sizeof(flag) is %d\n",sizeof(flag));
printf("size is equal to %d and cnt is %d\n",size,cnt);
flag[cnt] = 0.1;
}
printf("size is equal to %d\n",size);
变量 "size" 从之前确定的 6 变为垃圾号,我无法修改迭代次数。例如,如果我设置cnt < sizeof(flag)-1,则没有任何变化。 -2,-5, 等没有变化。但是,如果我大幅减小尺寸,它就会陷入无限循环。 sizeof(flag) 是 40,而不是我想要的 5,但除以 8 也会以某种方式使其陷入无限循环。有什么建议吗?
这个问题已经回答了,谢谢大家!
【问题讨论】:
-
再次阅读
sizeof的作用。 -
编辑后的代码在这里可以正常工作。你的代码的输出是什么?