调试断言失败! (不正常)

Debug Assertion Failed! (Not Normal)

好的,我的问题是断言失败。我不明白的是,我的程序正确地从文件输入到数组,然后打印到屏幕上,但仍然显示此错误,我就是想不通。本程序还有更多功能,请忽略未使用的功能。

我的代码如下:

#include <stdio.h>
#include <stdlib.h>
#define MAX 272

FILE* csis;

void processFile(char line[]);
int cipher();

int main(void) {
    char line[MAX];

    processFile(line, MAX);

    fclose(csis);
    return (0);
}
void processFile(char line[]) {
    FILE* fp;
    int i = 0;

    if (!(fp = fopen("congress.txt", "r"))) {
        printf("File could not be opened for input.\n");
        exit(1);
    }

    fseek(fp, 0, SEEK_END);
    fseek(fp, 0, SEEK_SET);
    for (i = 0; i < MAX; ++i) {
        fscanf(fp, "%c", &line[i]);
        printf("%c", line[i]);
    }

    fclose(fp);
}
int cipher() {}

我想你是说

fscanf(fp, "%s", &line[i]);

看起来你正在关闭一个未打开的文件句柄,以后你可以将你的文件句柄初始化为NULL,然后在关闭之前进行测试。

FILE *csis = NULL;
...
if (csis)
    fclose(csis);