【发布时间】:2013-10-06 06:10:50
【问题描述】:
我需要一个函数来从文件中读取成绩(整数)并返回一个动态分配的数组来存储它们。
这是我尝试过的:
int *readGrades() {
int *grades;
int x;
scanf("%d", &x);
grades = malloc(x * sizeof(int));
return 0;
}
但是,当我运行代码时,我什么也没得到。成绩存储在名为1.in的文件中:
29
6 3 8 6 7 4 8 9 2 10 4 9 5 7 4 8 6 7 2 10 4 1 8 3 6 3 6 9 4
我运行我的程序时使用:./a.out < 1.in
谁能告诉我我做错了什么?
【问题讨论】:
-
您显示的代码分配一个数组然后泄漏它(通过返回
0而不是grades)。您还没有显示任何尝试从文件中读取值的代码。 -
另外,该程序是否应该使用输入重定向?应该如何读取文件?
-
malloc()返回指向具有垃圾值的已分配内存的指针,您必须自己将值分配给已分配的内存 -
我在阅读时什么也没有得到!!!!使问题正确。你想从函数中返回数组吗?
-
如果不清楚,我很抱歉:我想要一个函数 readGrades 从输入(文件)中读取成绩并返回一个动态分配的数组来存储它们
标签: c arrays file-io dynamic-memory-allocation formatted-input