[英]libcurl - “curl_easy_cleanup()” is causing malloc error (C++)
[英]curl_easy_cleanup doesnt clear curl pointer
當我執行curl_easy_perform時,我將執行curl_easy_cleanup,如下所示:
CURL* pEasy = nullptr;
pEasy = curl_easy_init();
if (pEasy != nullptr)
{
curl_easy_setopt(pEasy, CURLOPT_USERNAME, user.c_str());
curl_easy_setopt(pEasy, CURLOPT_PASSWORD, pass.c_str());
curl_easy_setopt(pEasy, CURLOPT_URL, urlToConnectTo.c_str());
curl_easy_setopt(pEasy, CURLOPT_WRITEFUNCTION, OnReceiveHttpResponse);
curl_easy_perform(pEasy);
curl_easy_cleanup(pEasy);
}
我在調試器中注意到pEasy指針的地址及其地址為0x2af0ad18,但是在執行curl_easy_cleanup之后,它的地址仍為0x2af0ad18。
之后是否必須將其設置為nullptr? 我希望curl_easy_cleanup可以為我重置此設置???
http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html
該函數帶有一個指針,您如何期望它更改本地范圍內某物的值?
當您調用free(x)
,它沒有將set x
設置為null
,而是釋放了內存,這與curl_easy_cleanup
所做的相同。 之后是否要將pEasy
設置為nullptr,可能取決於您的代碼布局以及pEasy
是否超出范圍,這可能是一種好習慣,但不必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.