簡體   English   中英

curl_easy_cleanup不會清除curl指針

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM