[英]fscanf resulting in segfault
我正在尝试从.txt文件中读取一堆int
并将其存储在内存中。 每当我尝试运行它时,以下代码中的fscanf()
行都会导致分段错误。 我已经确认`fopen()工作正常。 知道我该怎么办吗? 谢谢你的帮助。
#include <stdio.h>
#include <stdlib.h>
void load_file(FILE* file, int** p);
int main()
{
FILE* f1;
f1 = fopen("twenty-five-ints.txt", "r");
int p=0;
int* k = &p;
load_file(f1, &k);
return 0;
}
void load_file(FILE* file, int** p) {
int number = 0;
int i = 0;
while (fscanf(file, "%d", &number) != EOF) {
*(*p + i) = (int) fscanf(file, "%d", &number);
i++;
}
}
在您的代码中, p
指向一个指向单个整数的指针。 您只有足够的空间来存储单个整数,尝试存储第二个或第三个整数可能会导致崩溃。
将p分配为大小为25的数组,并将每个元素初始化为零。
那应该解决问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.