strtok segmentation fault

Я пытаюсь понять, почему следующий фрагмент кода выдает ошибку сегментации:

void tokenize(char* line)
{
   char* cmd = strtok(line," ");

   while (cmd != NULL)
   {
        printf ("%s\n",cmd);
        cmd = strtok(NULL, " ");
   } 
}

int main(void)
{
   tokenize("this is a test");
}

Я знаю, что strtok () на самом деле не токенизирует строку литералы, но в данном случае строка указывает непосредственно на строку «это тест» , которая внутри является массивом char . Есть ли токенизация строка без копирования в массив?

12
задан user1162954 22 January 2012 в 00:00
поделиться