Curl_easy_cleanup不清除curl指针

curl_easy_cleanup doesnt clear curl pointer

本文关键字:curl 指针 清除 cleanup easy Curl      更新时间:2023-10-16

当我执行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是否即将超出范围。