Ошибка сегментации в терминале, но не на koding.com

Я пишу программу на C, и она имеет дело с довольно большими файлами (~4MB .txt файлы). Программа открывает большой файл и разбивает его на кучу маленьких файлов, прежде чем тестировать каждый из маленьких файлов. Я написал функцию, которая позже открывает эти файлы, тестирует, чтобы убедиться, что весь раздел был скопирован, и возвращает 1, если раздел был скопирован неэффективно (другая ошибка, которая возникает у меня в том, что иногда она копирует только первые 2 слова. раздела). Когда я компилирую и запускаю свою программу через koding.com (который использует компилятор gcc), она отлично работает для всех тестовых файлов. Однако, когда я пытаюсь запустить его локально на своем MacBook через терминал (я запускаю Lion, и у меня включена версия gcc в Xcode 4.6.3), он выдает мне "Ошибка сегментации: 11" и завершает работу, но только когда я использую в некоторых файлах (например, файл 3,9 МБ дает ошибку по умолчанию, а файл 2,7 МБ - нет).

Вот как эта функция называется:

for(i=1;tableArray[i].count!=0;i++)
{
    strcpy(word,tableArray[i].shortName);
    strcat(word,".txt");
    if(fopen(word, "r")!=NULL)
    {
        testFile = fopen(word, "r");
        problems[i] = checkFile(testFile);
        fclose(testFile);
    }

}

А вот и функция:

int checkFile(FILE *file)
{
    char word[NAMELEN];
    int count = 0;

    while(fscanf(file, "%s", word)!=EOF)
        count++;

    if(count<3)
        return(1);
    else return(0);
}

Любое понимание очень ценится. Спасибо!

0 ответов

Другие вопросы по тегам