EXC_BAD_ACCESS При использовании fgets () и strtok () - PullRequest
0 голосов
/ 13 марта 2020

моя функция (которая вызывается pthread) либо сразу дает мне EXC_BAD_ACCESS при вводе while l oop, либо работает правильно в течение нескольких итераций, прежде чем дать мне ссылки EXC_BAD_ACCESS.

void* getImdbId(char* movieId, char** retImdb)
{
    FILE* imdbFile;
    char buffer[128];
    char* splitter;
    char* fMovId;
    char* imdbId;
    imdbFile = fopen("links.csv", "r");
    while(fgets(buffer, 127, imdbFile) != NULL){
            //Determine if movieID matches.
            splitter = strtok(buffer, ",");
            fMovId = splitter;
            splitter = strtok(NULL, ",");
            imdbId = splitter;
            puts(fMovId);
            puts(imdbId);
            if(strcmp(fMovId, movieId) == 0)
            {
                strcpy(*retImdb, imdbId);
                return 0;
            }
    }
}

. csv содержит два столбца: один с идентификатором mov ie id, а второй с именем imdbid. Я получаю оба этих значения с помощью strtok (когда он работает должным образом для итерации), и когда он соответствует моему параметру movieid, он изменяет параметр retImdb, чтобы я мог получить доступ к некоторому другому моему коду, который также работает правильно, когда он делает не ошибка на мне.

Почему это происходит?

...