Я использую простую программу для токенизации строки с использованием функции strtok.Вот код -
# include <stdio.h>
char str[] = "now # time for all # good men to # aid of their country"; //line a
char delims[] = "#";
char *result = NULL;
result = strtok( str, delims );
while( result != NULL ) {
printf( "result is \"%s\"\n", result );
result = strtok( NULL, delims );
}
Программа успешно работает.Однако, если строка a изменяется на
char * str= "now # time for all # good men to # aid of their country"; //line a
Функция strtok дает дамп памяти.Я хотел бы получить объяснение моего понимания, почему это так?Потому что из объявления strtok как --char * strtok (char * str1, const char * str2);char * str в качестве первого аргумента должен работать