我有以下代码:
CURL *curl;
void http_init()
{
curl = curl_easy_init();
if (!curl) return -1;
}
void http_send_message(char *msg_out, char **msg_in)
{
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.133:8080/tawtaw");
curl_easy_setopt(curl, CURLOPT_USERNAME, "tawtaw");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "tawtaw");
curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC|CURLAUTH_DIGEST);
.
.
.
curl_easy_reset(curl);
}
void http_exit()
{
curl_easy_cleanup(curl);
}
int main()
{
char *msgin=NULL;
http_init();
http_send_message("message number 1", &msg_in);
free(msgin);msgin=NULL;
http_send_message("message number 2", &msg_in);
free(msgin);msgin=NULL;
http_exit();
}
如果我打电话
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.133:8080/tawtaw");
然后
curl_easy_reset(curl)
然后
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.133:8080/tawtaw");
再次,第一个curl_easy_setopt
中分配的内存是由curl_easy_reset(curl)
释放还是第二次调用curl_easy_setopt
?
或者内存没有被释放并且存在内存泄漏?
答案 0 :(得分:2)
第一个
curl_easy_setopt()
中分配的内存是由curl_easy_reset(curl)
释放还是第二次调用curl_easy_setopt()
?
事情是:
这是一个实施细节。
由于前面的事实,它没有/不应该重要。任何一个都是真的,在这两种情况下都可以进行适当的内存管理。