我正在尝试从文件中读取多个浮动块。当我只使用一个变量,它工作正常,但保存到多个浮点数的时候有问题:使用fscanf时出现Segfault
float r_testdata[3276334];
float i_testdata[3276334];
int e = 1;
FILE *fpI_i = fopen("/home/users/Documents/document.dat","r");
for(int i = 0; i < 3276334;i++) {
e = fscanf(fpI_i,"%f %f",&r_testdata[i],&i_testdata[i]);
if(e != 1) {
fprintf(stderr,"Error reading file\n");
}
}
fclose(fpI_i);
当fscans运行与2读取它出现segfaults。这看起来像fscanf格式化的问题,但我没有看到问题是什么。我查看了类似问题的帖子,但没有得到修复。
这一切都在相同的功能?我们不能说[因为你的代码不是MCVE](http://stackoverflow.com/help/mcve)。如果是,那么'float real_testdata [3276334];'是(这是?的一部分?)问题---在两个结构之间,你在栈上分配24MB的数据*。 –
'e!= 1' - >'e!= 2'和拼写错误的变量名称。 – BLUEPIXY
如果你只是需要扫描浮点数,我建议你使用'double',然后'%lf' – KKastaneda