int x = 750;
int i = 0;
while (pow(2, i) < x) {
i++;
}
printf("i is currently %d\n", i);
int array[i];
while (i > 0){
i--;
printf("The value of array %d is %d\n", i, array[i]);
}
当我这样做时,它会产生一些非常疯狂的价值观。我听说尝试使用malloc或memset,但价值观并没有改变。我想要做的就是将所有这些设置为零,以便我可以将它用作计数器。谢谢!
答案 0 :(得分:1)
您没有初始化数组值。它的内容是垃圾:array[i]
中printf
的值未定义 - 可能是任何内容。
要将数组初始化为0,可以使用memset
(由@WhozCraig评论,memset
将数组的所有字节设置为给定值):
memset (array, 0, sizeof(array));
要编写其他内容,请编写for循环:
int n = 0;
for(; n < i ; ++n)
array[n] = n;