Segmentation fault при чтении ответа libcurl | C++
Есть такой код:
CURL *curl;
CURLcode res;
std::string readBuffer{};
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, m_url.c_str());
struct curl_slist* headers = nullptr;
curl_slist_append(headers, "Content-Type: application/json");
curl_slist_append(headers, "Authorization: Bearer t1.9euelZqZipyJjIyTlJWczp6RkcnIye3rnpWayseMxsuWzpiSzZaWnJObzY7l8_d_QG9s-e99ZyxC_t3z9z9vbGz5731nLEL-.Y1PzNu3h3nxaYYZ_PZrL0pf8AHlbusGCUo6ZUH4JIJ-63S5J2NAS3ERu__W1Lww5fSjxWL17AFeQDuDwknTZCA");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"folderId\": \"b1gvmob95yysaplct532\",\"texts\": [\"Hello\", \"World\"],\"targetLanguageCode\": \"ru\"}");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
// curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, [](void *contents, size_t size, size_t nmemb, void *userp)
// {
// //((std::string*)userp)->append((char*)contents, 10);
// return size * nmemb;
// });
// curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
std::cout << curl << (res == CURLE_OK) << " " << readBuffer << std::endl;
}
Если раскомментировать строчки, ответственные за чтение ответа, то мы ловим Segmentation fault.
Я так подозреваю, что это из-за того, что ответ с сервера возвращается без символа "\0" в конце.
Но в консоль при включении curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); ответ прекрасно как-то выводит.
Как это пофиксить и что я не так делаю?
P.S. Обнаружил, что в данном коде мне в void *userp приходит нулевой указатель. Почему?