Cela semble être un problème facile à résoudre, mais je fais quelque chose de mal. J'ai été à travers tous les threads similaires et n'a pas trouvé quelque chose qui a résolu mon problème, donc toute aide serait appréciée!Tableau de structures - Le tableau a un type d'élément incomplet (en C)
Fondamentalement: C programme, et j'essaye de créer un tableau de 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);
}
Lorsque je tente de compiler (AVEC -levent, je pourrais ajouter) je reçois cette erreur:
src/mix/mix1.c:57:34: error: array type has incomplete element type
Toutes les idées? :(
Note:. Je suis la définition des BufferEvents en dehors des principaux pour les rendre accessibles partout dans mon code sans les passer, j'ai d'autres #define est dans la région, donc je suis sûr que c'est quelque chose à voir avec la façon dont je « m de les construire ??
Quelle ligne provoque l'erreur? – ouah
Que dit la ligne 57 dans mix1.c? – harald
Je peux voir que bev [0] est de type 'struct bufferevent' tandis que' bufferevent_socket_new' renvoie un pointeur sur 'struct bufferevent', et' bufferevent_setcb' prend aussi un pointeur comme paramètre. – SirDarius