【发布时间】:2017-09-05 17:39:29
【问题描述】:
本练习的目的是使用动态内存分配的双下标方法。 这个程序的输入是一个二维浮点数据数组,位于一个名为 测试数据2。输入数组将包含 3 行数据,每行包含 5 列数据。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
int temp;
int number;
int r = 3;
int c = 5;
fp = fopen("testdata2.txt", "r");
number = (int)malloc(r * c * sizeof(int));
while (fscanf(fp, "%d", &temp) != EOF){
for(int i = 0; i < 3;i++){
for(int j = 0; j < 5; j++){
temp = number[i][j];
}
}
}
return(0);
}
【问题讨论】:
-
错误消息所指的“下标值”是
number。number的类型为int,您不能将其作为数组进行测试(在temp = number[i][j];中)。 -
number = (int)malloc(r * c * sizeof(int));如果有更具体的例子,用演员表错误地掩盖警告,我们很难找到它。 -
对于浮点数据,也可以使用
float或double。