【问题标题】:acessing data of a structure from another structure从另一个结构访问结构的数据
【发布时间】:2011-02-14 11:31:55
【问题描述】:

这里src_addr是char[16]类型,ptr->ip.ip_src.s_addr用于访问我分配时在网络中流动的数据包的源地址

keys.dst_addr =  ((ptr->ip.ip_dst.s_addr)&(0x0FF<<(i*8)))>>(i*8) ;

我曾经遇到过错误

错误:从类型“in_addr_t”分配给类型“char[16]”时类型不兼容

所以我以这种形式分配它使用inet_ntoa转换了源地址这是正确的方法吗?我仍然在这一行中遇到错误

 keys.src_addr = inet_ntoa (ptr->ip.ip_src.s_addr);

【问题讨论】:

  • Keys 和 ptr->ip 是否属于同一类型?
  • @gunner: key ia 是一个结构体,ptr 是指向结构体 ip 的指针,结构体 ip 的成员是 struct in_addr ip_src,ip_dst
  • 如果你能发布结构的定义会很有帮助。

标签: c


【解决方案1】:

尝试使用:

keys.dst_addr = inet_ntoa(ptr->ip.ip_dst);
keys.src_addr = inet_ntoa(ptr->ip.ip_src);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多