Попробуйте использовать массив символов.

жный дубликат:
strtok дает ошибку сегментации

Почему я получаю segfault, используя этот код?

void test(char *data)
{
    char *pch;
    pch = strtok(data, " ,.-"); // segfault
    while (pch != NULL)
    {
        printf("%s\n", pch);
        pch = strtok(NULL, " ,.-");
    }

    return NULL;
}

char *data = "- This, a sample string.";
test(data);

Ответы на вопрос(2)

Ваш ответ на вопрос