当前位置:  技术问答>linux和unix

强制类型转换时一个莫名奇妙的错误,

    来源: 互联网  发布时间:2016-05-19

    本文导语:  在学习getaddrinfo函数的用法时,时如果写成 struct sockaddr_in tempaddr;   tempaddr=(struct sockaddr_in) aip->ai_addr; //aip是getaddrinfo返回的值 inet_ntop(AF_INET,(struct in_addr *)(&(tempaddr.sin_addr)),abuf,INET_ADDRSTRLEN); 就会报错 conversion to...

在学习getaddrinfo函数的用法时,时如果写成

struct sockaddr_in tempaddr;
  tempaddr=(struct sockaddr_in) aip->ai_addr; //aip是getaddrinfo返回的值
inet_ntop(AF_INET,(struct in_addr *)(&(tempaddr.sin_addr)),abuf,INET_ADDRSTRLEN);

就会报错 conversion to non-scalar type requested;

但是如果改成

struct sockaddr_in * tempaddr;
  tempaddr=(struct sockaddr_in *) aip->ai_addr; 
inet_ntop(AF_INET,(struct in_addr *)(&(tempaddr->sin_addr)),abuf,INET_ADDRSTRLEN);


编译就可以通过,两种方式就差一个地方一个是通过结构体变量的名字在使用.成员运算符引用成员,另一个使用指针并使用->引用成员,个人感觉两种都没什么问题啊,为什么会报错呢。

|
aip->ai_addr 是 struct sockaddr * 类型,是个sockaddr结构指针,当然不能转为sockaddr_in结构类型。
但是可以强制转为struct sockaddr_in * 类型,即sockaddr_in结构指针。

    
 
 

您可能感兴趣的文章:

  • 标准c++四种强制类型转换方式介绍
  • C语言中自动隐式转换与类型强制转换实例分析
  • 结构指针类型强制转换
  • 深入C++四种强制类型转换的总结
  • java中强制转换
  • 函数指针的强制类型转换实现代码
  • python类型强制转换long to int的代码
  • 关于类型强制转换的问题?
  • 在LINUX下使用强制类型转换reinterpret_cast 出错?
  • 如何实现C#自定义结构的强制转换
  • 如何从Vector中提取任意类型的对象(是否涉及强制类型转换)?
  • 因为mmap函数返回值是void*类型,是否可以将其强制转换成char*类型,按字符串操作,然后将修改重新写入内存映像即可????
  • set_gate这里为什么要强制转换?
  • C#中使用强制类型实现字符串和ASCII码之间的转换
  • 强制性转换的简单问题 但我就是不懂!!!麻烦大家了!!!
  • 一个socket编程中强制类型转换的疑惑
  • 解析C++中四种强制类型转换的区别详解
  • c++类的隐式转换与强制转换重载详解
  • C++中Operator类型强制转换成员函数解析
  • 基于c++强制类型转换的(总结)详解
  • 解析PHP强制转换类型及远程管理插件的安全隐患
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Web服务器/前端 iis7站长之家
  • 请问如何修改网卡的速率,如强制100M,强制10M,怎么实现的,是不是要修改驱动?
  • Linux下glibc库文件锁:协同锁(advisory lock)和强制锁(mandatory lock)
  • css强制换行 css强制不换行的css方法
  • 如何加强制性锁?
  • PHP 强制下载文件示例代码
  • 怎么强制删除一个安装程序啊
  • 请问qt如何强制关闭窗口
  • dhcp如何强制更新ip?
  • php实现文件强制下载代码
  • 强制关机 现在进不了桌面
  • css white-space:nowrap属性用法(可以强制文字不换行输出)
  • MYSQL中常用的强制性操作(例如强制索引)
  • JAVA有没有强制回收机制?
  • 强制认证门户 Opengate
  • Linux C下socker编程,如何强制不分片?
  • tail跟踪一个进程后,怎么停止跟踪? ^Z强制结束后,tail进程还是有,要kill掉
  • 【特别通知】超过一个月的帖子请及时结,否则强制结贴将扣除信誉分1分。
  • PHP强制下载文件方法浅析
  • 装linux双系统,/boot强制为主分区的时候出错
  • 如何强制删除或恢复SQLServer正在使用的数据库


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3