我可以在设置CURLOPT_HTTPHEADER后立即调用curl_slist_free_all吗?

问题描述:

我可以这样做吗?我可以在设置CURLOPT_HTTPHEADER后立即调用curl_slist_free_all吗?

curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); 
curl_slist_free_all(headerlist); 

也就是说,我可以在发送请求之前释放标题列表吗?卷曲是否复制?

+1

未来的只是注意:如果你碰到一个第三方二进制库,你可以不看,看,你可以做的是设置选项,然后以某种明显的覆盖你的价值,然后调用操作。如果原始值显示出来,你知道它做了一个副本。如果新值显示出来,你知道它没有。 – 2014-10-02 23:21:57

+1

这现在也在CURLOPT_HTTPHEADER手册页中为未来黑客澄清。 – 2014-10-03 11:37:08

不。在源文件中,setopt函数只是保存你的指针。

case CURLOPT_HTTPHEADER: 
    /* 
    * Set a list with HTTP headers to use (or replace internals with) 
    */ 
    data->set.headers = va_arg(param, struct curl_slist *); 
    break;