我試圖訪問一個文件和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