提问人:blzy 提问时间:11/13/2022 最后编辑:trincotblzy 更新时间:11/13/2022 访问量:206
将数据从文件读取到堆内存的函数
Function to read data from a file into heap memory
问:
我正在编写一个函数,用于读取文本文件中的成绩数并将它们存储到堆内存中。它将计数写入ptr_cnt指向的位置,并返回存储在所述堆内存中的第一个字节的地址。
我已经写了这个,计数工作得很好。但是,数据似乎没有写入堆中。当我打印出第一个堆时,我得到 0.000。
double *read_data(char const *file_name, int *ptr_cnt)
{
FILE *read = fopen(file_name, "r");
if (read == NULL)
{
return NULL;
}
int count = 0;
char ch;
while ((ch = fgetc(read)) != EOF)
{
if (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\0')
{
count++;
}
}
*ptr_cnt = count;
double *heap;
heap = (double *)malloc(sizeof(double) * count);
double num = 0.0;
int i;
for (i = 0; fscanf(read, "%lf", &num) != EOF; i++)
{
*(heap + i) = num;
}
fclose(read);
return heap;
free(heap);
}
答: 暂无答案
评论
malloc
malloc
void*
free(heap)