我试图访问一个文件和fscanf数据到一个二维数组,但每当我运行代码时,我得到分段错误(核心转储)。我试图寻找一个解释,为什么,但似乎无法找到一个。我知道我试图打开的文件位于正确的位置,并且没有拼错。任何帮助?分割错误。为什么?
#include <stdio.h>
#include <math.h>
#define FILENAME "rocket1.txt"
int main(void)
{
FILE *rocket1;
int i, NROWS, NCOLS, k, num_data_pts;
double x[NROWS][NCOLS];
rocket1 = fopen(FILENAME,"r");
if(rocket1 == NULL)
{printf("Error opening file.\n");}
fscanf(rocket1,"%d",&num_data_pts);
for(i=1;i<=num_data_pts;i++)
for(k=0;k<4;k++)
fscanf(rocket1,"%lf",&x[i][k]);
fclose(rocket1);
return 0;
}
首先,您没有定义NROWS或NCOLS - 因此您不知道阵列的尺寸。您需要了解如何使用GDB,以便您可以自行调试问题。 – ewindes