Qt线程里面如何给一个结构体分配套接字地址结构
该代码源自于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;
pr->sarecv = (struct sockaddr *) calloc(1, ai->ai_addrlen); 强制转换一下
|