Я пытаюсь понять, почему следующий фрагмент кода выдает ошибку сегментации:
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
. Есть ли токенизация строка
без копирования в массив?