這似乎是一個容易解決的問題,但我做錯了什麼。我已經通過所有類似的線程,並沒有發現任何解決我的問題,所以任何幫助將不勝感激!數組的結構 - 數組具有不完整的元素類型(在C中)
基本上:C程序,我試圖創建一個bufferevents數組。
#include <event2/listener.h>
#include <event2/bufferevent.h>
#include <event2/buffer.h>
extern struct bufferevent bev[8];
//Then, my accept functions -- well, one of them...
static void accept1(struct evconnlistener *listener,
evutil_socket_t fd, struct sockaddr *address, int socklen,
void *ctx) {
/* A new connection was received on this port */
struct event_base *base = evconnlistener_get_base(listener);
bev[0] = bufferevent_socket_new(base, fd, BEV_OPT_CLOSE_ON_FREE);
/* Callback for when (*bufevent, data READ, data WRITTEN, event OCCURRED, *void) */
bufferevent_setcb(bev[0], read1, NULL, echo_event_cb, NULL);
}
當我嘗試編譯(WITH -levent,我可以補充)我得到這個錯誤:
src/mix/mix1.c:57:34: error: array type has incomplete element type
任何想法? (
注意:我定義了主要以外的bufferevents,使它們在我的代碼中無處不在,而且沒有通過它們。我在該區域有其他#define,所以我確信這是與我的方式有關「M構建他們?
什麼行會導致錯誤? – ouah
mix1.c中的第57行是什麼意思? – harald
我可以看到,bev [0]是'struct bufferevent'類型,而'bufferevent_socket_new'則返回一個指向'struct bufferevent'的指針,'bufferevent_setcb'也將一個指針作爲參數。 – SirDarius