gpt4 book ai didi

c - ‘->’ 的无效类型参数(有 ‘fd_set’ )

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:32 24 4
gpt4 key购买 nike

我知道这不是出现此错误的第一个线程,但我真的无法理解问题所在...我的代码如下:

/* File descriptor sets */
struct descs {
fd_set read;
fd_set write;
fd_set except;
};

typedef struct descs descs_t;

/* Server representation */
struct server {
int sock; /* Server sock descriptor */
struct sockaddr_in addr; /* Server address */
socklen_t addrlen; /* Server address size */
char buffer[BUFFER_SIZE]; /* Message buffer */
int len; /* Message buffer length */
};

typedef struct server server_t;

void build_fds(struct server *srv, struct descs *fd) {
FD_ZERO(fd->read);
FD_SET(STDIN_FILENO, fd->read);
FD_SET(srv->sock, fd->read);

FD_ZERO(fd->write);
// there is smth to send, set up write_fd for server socket
if (srv->len > 0) {
FD_SET(srv->sock, fd->write);
}

FD_ZERO(fd->except);
FD_SET(STDIN_FILENO, fd->except);
FD_SET(srv->sock, fd->except);
}

我通过指针传递我的结构,所以我必须使用 -> 但它因错误而崩溃:

chatcl.c: In function ‘build_fds’:
chatcl.c:37: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:38: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:39: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:41: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:44: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:47: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:48: error: invalid type argument of ‘->’ (have ‘fd_set’)
chatcl.c:49: error: invalid type argument of ‘->’ (have ‘fd_set’)
make: *** [chatcl] Error 1

我的代码有什么问题?

最佳答案

您缺少 &,即您需要数据结构的地址,例如

#include <sys/select.h>

struct descs {
fd_set a;
};

void func(struct descs *d) {
FD_ZERO(&d->a);
}

关于c - ‘->’ 的无效类型参数(有 ‘fd_set’ ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54265824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com