我的程序會正常運行並顯示信息,但只要我按任意鍵繼續我得到的程序已停止工作屏幕,我不知道爲什麼,這裏是我的代碼我的c程序在運行完成後崩潰
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char A[50][30];
printf("Hello \n");
FILE *file;
file = fopen("Strings.dat","r");
printf("The contents of the array are :\n");
int ch = 0;
while(fgets(A[ch], 30, file))
{
int length = strlen(A[ch]);
/*
if((A[ch][length-1]) == '\n')
{
A[ch][length-1] = NULL;
}
*/
ch++;
}
fclose(file);
printf("%s",A[0]);
system("PAUSE");
}
任何人都可以解釋我做錯了什麼嗎?
如果你想知道註釋代碼被註釋掉了,因爲它給了我一個警告「【警告】賦值時將指針整數,未作施放[默認啓用]」我想取出來會解決我的問題
我看到的唯一情況是你沒有檢查文件是否正確打開。如果'file'是'NULL',那麼文件沒有打開。 – ooga
噢好 - 我的大部分應用程序在運行時崩潰。 –
仔細檢查您正在閱讀的文件的內容和大小。有可能你正在寫數組的邊界之外並砸碎你的堆棧,並且隨着程序結束和堆棧展開而顯現出來。 – Duck