c90程序中的exc_bad_access(code = 1 adress = 0x68)

时间:2014-04-20 15:33:15

标签: c arrays matrix c89

我试图在c90中创建一个程序,它将从txt文件中读取一些单词并将它们复制到矩阵数组中。似乎编译没问题,但有一个名为" EXC_BAD_ACCESS(代码= 1地址= 0x68)的线程。你能帮我找出问题所在吗?

int main(int argc, char *argv[]) {

FILE *input;
char words[10][30];
int i,a;

input=fopen("test.txt","rt");
for(i=0;i<10;i++){
    a = fscanf(input,"%s", words[i]);
    printf("%2d %s\n", a, words[i]);

    }
fclose(input);
return 0;

}

1 个答案:

答案 0 :(得分:0)

检查您的文件是否实际被打开,否则printf()将尝试打印出可能超出您实际分配范围的随机内存并导致错误。

input = fopen("test.txt", "rt");
if (!input)
{
    perror("Failed to open file");
    exit(1);
}

您可能还想检查a == 1,即fscanf()也成功。