gpt4 book ai didi

c - 访问通过套接字接收的动态分配的结构

转载 作者:太空狗 更新时间:2023-10-29 16:06:44 25 4
gpt4 key购买 nike

我正在将动态分配的结构从服务器传输到客户端。整个结构在客户端接收,但在客户端访问结构元素时出现段错误。

服务器代码:

struct structure *struct1 = malloc(sizeof(struct structure)*count);

bytes = send(sockfd, (void*)&struct1, sizeof(struct structure));

客户端代码:

struct structure *struct1 = malloc(sizeof(struct structure)*count);

bytes = recv(sockfd, (void*)&struct1, sizeof(struct structure));

最佳答案

send()函数原型(prototype)为

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

第二个参数应该是 const void * 类型。

您的代码中的问题是您没有将指针传递给缓冲区,而是将指针传递给缓冲区。另外,类型转换是错误的。

改变

(void)&struct1

(const void *)struct1

注意:IMO,这将在没有强制转换的情况下工作[可能更好]。试一试。

关于c - 访问通过套接字接收的动态分配的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27716864/

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