Я получаю ошибку сегментации в strtok_r
в следующем фрагменте кода, и я потратил несколько часов, пытаясь выяснить, почему. Ответы на других страницах говорят, что вы не можете изменить строковый литерал, но (насколько я знаю) я не.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char req[256];
//char* req = malloc(256 * sizeof(char));
strcpy(req, "hello\r\nversion 1.0\r\n\r\n");
char** lineSavePtr;
char* line = strtok_r(req, "\r\n", lineSavePtr);
}
Если я переключу объявление req
на динамическое,оно работает. Это также работает, если я использую strtok
вместо strtok_r
, поэтому я предполагаю, что это может иметь какое-то отношение к lineSavePtr
?
Большое спасибо за любые ответы.