【发布时间】:2017-12-30 10:37:43
【问题描述】:
我现在正在学习一些 c,并且必须为大学做一个练习。我需要一个应该用 int 值填充的双精度数组。所以我有这个。
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] ) {
int size=0, i=0;
printf("Enter size of array: ");
scanf("%d", &size);
double* field = malloc(size * sizeof(double));
double value;
for(i=0; i<size; i++) {
field[i] = i;;
}
for(i=0; i<size; i++) {
printf("Field%i: %d\n",i, field[i]);
}
free(field);
return 0;
}
但是,当我执行它时,所有值都设置为 0。
Enter size of array: 10
Field0: 0
Field1: 0
Field2: 0
Field3: 0
Field4: 0
Field5: 0
Field6: 0
Field7: 0
Field8: 0
Field9: 0
【问题讨论】:
-
请参阅this Q&A 以获得解释。
-
检查编译器的警告选项。许多编译器可以针对格式说明符不匹配发出警告 - 不要忽略警告 - 特别是不要询问有关发出警告的代码的问题 - 要么专门询问警告,要么在询问之前修复警告。