我有一個基本的C程序,我必須爲個人軟件過程分配做。我對C相當陌生,所以我真的不知道自己出了什麼問題。請通讀並讓我知道我在做什麼導致它崩潰?分段錯誤(核心轉儲) - 錯誤在哪裏?
我必須讀取一個文件,並將值存儲爲一個數組。它沒有編譯錯誤,只是分段錯誤。
#include <stdio.h>
#define array_limit 100
int main (void)
{
FILE *ifp;
char *mode = "r";
ifp = fopen("samplepopulation.txt", mode);
if (ifp==NULL)
{
printf("cannot read file \n");
}
else
{
int i;
float sample;
float values[array_limit];
i = 0;
do
{
fscanf(ifp, "%f", &sample);
if (!feof(ifp))
{
values[i] = sample;
printf("%f \n", values[i]);
i++;
if (i>array_limit)
{
printf("File larger than allowed/n");
break;
}
}
else
{
printf("read complete");
}
} while (ifp!= EOF);
}
fclose(ifp);
return 0;
}
,現在是學習如何使用調試器:) –
段錯誤的時間==> GDB – avmohan
你已經用C標籤標記了這篇文章,但是你並沒有在代碼的開頭聲明變量。照顧這種事情...... – adripanico