在Qt线程里面如何给一个结构体分配套接字地址结构

lynnhua_ 2013-06-17 12:53:10
该代码源自于traceroute功能中的片段,在linux终端能正确运行,但是写进Qt里面就报错:
invalid conversion from ‘void*’ to ‘sockaddr*’,求大神指点怎么修改此处。
其中红色字体错位错误代码(在Qt中报错):
pr->sasend = ai->ai_addr; /* contains destination address */
pr->sarecv = calloc(1, ai->ai_addrlen);
pr->salast = calloc(1, ai->ai_addrlen);
pr->sabind = calloc(1, ai->ai_addrlen);

pr->salen = ai->ai_addrlen;
pr结构体的定义:

struct proto
{
const char *(*icmpcode)(int);
int (*recv)(int, struct timeval *);
struct sockaddr *sasend;
struct sockaddr *sarecv;
struct sockaddr *salast;
struct sockaddr *sabind;
socklen_t salen;
int icmpproto;
int ttllevel;
int ttloptname;
} *pr;
...全文
51 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynnhua_ 2013-06-17
  • 打赏
  • 举报
回复
迷糊了,强制转换呗!
zhxianbin 2013-06-17
  • 打赏
  • 举报
回复
pr->sarecv = (struct sockaddr *) calloc(1, ai->ai_addrlen);

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧