我的程序会正常运行并显示信息,但只要我按任意键继续我得到的程序已停止工作屏幕,我不知道为什么,这里是我的代码我的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