Эй, ребята, я получаю ошибку seg с strtok, просто нужно немного помочь!Seg fault with strtok
char s[1024];
char *token[2];
while(fgets(s, sizeof(s), fp) != NULL) // Read line from file fp until end
{
token[0] = strtok(s, "\t\n");
token[1] = strtok(NULL, "\t\n");
token[2] = strtok(NULL, "\t\n");
printf("%d:%s:%d", atoi(token[0]), token[1], atoi(token[2]));
}
Но я получаю ошибку seg после первой пасхи цикла. Файл вход читает что-то вроде этого:
102910319 code mark
.
.
.
104981851 code mark
Но цикл пока только печатает первую строку правильно и SEG ошибки на второй линии.
Любые идеи, почему?
Спасибо.
Мое первое предположение: вы объявили 'токен [2]', но вы получаете доступ к 3 элементам – Jack
также возможно, после исправления объявления массива у вас могут возникнуть проблемы с данными: - белые символы между столбцами отличны от \ t. –
Исправлено, но все равно получить сбой! @jimmcnamara Нет, они все \ t (вкладки). – Travv92