Существует несколько разумных возможностей для ошибки сегментации:
- Передача
NULL
в качестве данных при первом вызове strtok()
.
- Передача
NULL
в качестве разделителя.
- Использование в качестве данных строки только для чтения, что запрещено, поскольку
strtok()
изменяет исходную строку.
Я вижу, вы знаете, как использовать GDB, поэтому поставьте точку останова перед вызовом strtok()
и посмотрите, какие значения передаются в функцию.
Вы также можете использовать valgrind . Это поможет вам найти конкретную проблему, которая у вас есть.
Но, если вы хотите получить лучшие ответы при переполнении стека, вы должны дать еще немного кода и другую информацию.