我在代码中有结构指针
struct evkeyvalq *headers;
现在我调用一个函数来填充结构中的一些信息。
evhttp_parse_query(uri, headers)
我在这条线上遇到分段错误。这样做的正确方法是什么。谢谢
我在代码中有结构指针
struct evkeyvalq *headers;
现在我调用一个函数来填充结构中的一些信息。
evhttp_parse_query(uri, headers)
我在这条线上遇到分段错误。这样做的正确方法是什么。谢谢
您需要为 struct evkeyvalq 分配一些内存。正如您的代码现在一样,您将未初始化的指针传递给 evhttp_parse_query() ,并且 evhttp_parse_query() 无法正常运行。
在堆栈上分配结构:
struct evkeyvalq headers;
evhttp_parse_query(uri, &headers);
或者使用动态分配的内存:
struct evkeyvalq *headers = malloc(sizeof *headers);
if(headers != NULL) {
evhttp_parse_query(uri, headers);
}