libevent:未初始化的结构指针

时间:2012-08-25 00:37:20

标签: c++ pointers segmentation-fault libevent

我在代码中有结构指针

struct evkeyvalq *headers;

现在我调用一个函数来填充结构中的一些信息。

evhttp_parse_query(uri, headers)

我在这一行得到了分段错误。这样做的正确方法是什么。感谢

1 个答案:

答案 0 :(得分:2)

您需要为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);
}