Моя документация для strtok_r
гласит:
char *strtok_r(char *str, const char *delim, char **saveptr);
При первом вызове strtok_r()
, str
должен указывать на строку для анализа, изначение saveptr
игнорируется.При последующих вызовах str
должно быть NULL
, а saveptr
должно оставаться неизменным с момента предыдущего вызова.
Поэтому сначала следует позвонить с помощью
strtok_r(str, "\"", &last_pointer);
и затем с
strtok_r(NULL, "\"", &last_pointer);