我正在研究我认为是一个简单的程序来尝试熟悉 C 风格的代码(与我习惯的 C++ 相比),并且遇到了障碍。
我已经使用 为数组分配了内存calloc
,并希望用户只需输入一个数字,然后将该数字放入数组中(重复此操作直到数组完全填充)。数组似乎已经创建,但我的代码没有写入数组。程序在运行时接受输入,将该输入存储到临时变量 q(用于调试目的),但不会将该临时变量的值写入数组。
这是我认为解决我问题的代码片段:
//e is the size of array as indicated by user
values = (double *)calloc(e , sizeof(double));
double q = 0; // holds input just to make sure it works
for (int i = 0; i < e; i++)
{
printf("Please enter value %d: ",i+1);
scanf("%d", &q);
printf("%d", q); // confirms q = "input"
values[i] = q; //This isn't happening for me
}
如果有人能纠正(并最好解释)我关于为什么values[i]
永远不等于 q 的错误,我将不胜感激。