libevent:未初始化的结构指针

libevent: uninitialized structure pointer

本文关键字:结构 指针 初始化 libevent      更新时间:2023-10-16

我在代码中有结构指针

struct evkeyvalq *headers;

现在我调用一个函数,该函数将在结构中填充一些信息。

evhttp_parse_query(uri, headers)

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

您需要为结构evkeyvalq分配一些内存。现在的代码是,将一个未初始化的指针传递到evhttp_parse_query()中,并且evhttp_parce_query(()无法正常操作。

在堆栈上分配结构体:

struct evkeyvalq headers;
evhttp_parse_query(uri, &headers);

或者使用动态分配的内存:

struct evkeyvalq *headers = malloc(sizeof *headers);
if(headers != NULL) {
    evhttp_parse_query(uri, headers);
}