结构体强制转换问题!!求教

zh1599512 zh1599512 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
struct sockaddr  tmp111;
struct sockaddr_in *sin111;
char *buf = (char *)malloc(10000);

memset(buf, 0, sizeof(buf));
tmp111 = ipList[asd].fromaddr;
sin111 = (struct sockaddr_in*)&tmp111;

memcpy(buff, sin111->sin_addr, 4);


为什么最后一句copy会报类型不完整?gcc编译报错,vs不报错。
改成下面这样就可以了?
 memcpy(buff,  (struct in_addr*)&sin111->sin_addr, 4);
...全文

相关推荐

关于结构体指针类型的强制转换

在学习stm32嵌入式开发过程中,关于对GPIOA等地址的强制性结构体指针类型转换的参考依据!

changxiang_qhd

关于结构体类型数据的强制类型转换

有如下结构体定义:   typedef struct cemsg   {   uchar dl;   uchar mg;   uchar data[10];   }CEMSG;   typedef struct msg{   uchar id;   uchar cmd;   uchar byte[4];   }MSG;   typedef struct msg_p{   uchar id;   uchar cmd;   uchar far * ptr;   }MSG_P;   void ap_getmsg(MSG *d_OsMsgPtr,CEMSG *d_Ce

weixin_38591011

浅谈Java中强制类型转换的问题

下面小编就为大家带来一篇浅谈Java中强制类型转换的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38680393

常量强制转化为一个结构体指针,并以此常量为该结构体的起始地址。

#include typedef struct DD STU; struct DD{ int a; int b; char t; }; void main(void) { STU c,b; b.t=4; printf(%p\n,&(((STU*) 0x40)->b));//输出(STU*) 0x40)->b的地址为00000044 printf(%d\n,b.t); } 如果宏定义括号不可以去掉: 1、#define WE ((STU*) 0x40) // 正确 2、#define WE (STU*) 0x40 //错误 注意:第二种定义在实际展开时会因为运算

weixin_38706045

C编程小技巧??结构体强制类型转换

前些天看一款数据库语法解析器的代码,其中的词法分析语法解析阶段,利用一个结构体存储所解析的SQL语句的类型,然后根据这个类型将改结构体强制转换为对应的另一结构体并赋值给他,以便做进一步的执行工作。   举个简单的例子:   存储语法解析后数据的结构体(注意,其只有一个元素)为: struct analyse { int type; };   我们约定的不同的type代表不同的SQL操作,假如type=1时表示alter table操作,type=2时表示select操作,type等于3时表示create table操作等等。那么我们对不同的操作有不同的结构体来存储信息,例

weixin_38632046
评论 1
收藏 已收藏
分享
返回顶部
zh1599512
C语言 70,039 成员 243,237 内容