inet_ntoa()多次调用时的问题
来源:互联网 发布:查找重复删除知乎 编辑:程序博客网 时间:2024/05/24 04:54
本文转自http://blog.chinaunix.net/uid-25203957-id-372797.html,作者:crazyhadoop
崩溃,一个inet_ntoa()函数的自身特性害的我调试了半天程序。
inet_ntoa函数就是将IP无符号整形转换成IP字符串,函数返回的是指向IP字符串的一个指针,乍看没什么问题。门道就在返回的这个字符串上。这个字符串是在其内部静态分配的,后面的每次调用都会覆盖上一次的值。
因此,每次使用过后要备份数据,才能继续调用。
struct in_addr saddr,daddr;
saddr.s_addr=1.2.3.4;
daddr.s_addr=2.3.4.5;
printf("%s : %s\n", inet_ntoa(saddr), inet_ntoa(daddr));
则结果都是 "1.2.3.4 : 1.2.3.4" —— printf 从右向左求值,daddr 先求的2.3.4.5被 1.2.3.4覆盖。用的同一块内存。
但是如果把printf 分为两行打印就没有问题了,分别求值,每段数据都可以重新赋值。
0 0
- inet_ntoa()多次调用时的问题
- inet_ntoa()的问题
- inet_ntoa 的问题
- listview多次调用addHeaderView和addFooterView时遇到的问题
- 多次调用异步任务(AsyncTask)时出现的问题
- 自定义adapter时getView多次重复调用的问题
- JSP reponse.sendRedirect 多次调用的问题
- 关于UILongPressGestureRecognizer调用多次的问题
- mysql多次调用存储过程的问题
- fragment多次调用onCreateView的问题
- 关于fragment多次调用onCreateView的问题
- ListView,GridView的getView多次调用问题
- 优化 shiro 多次调用 redis 的问题
- 关于UILongPressGestureRecognizer调用多次的问题
- 关于Android中的onCreate()多次被调用导致bindService被多次调用的问题
- 关于Android的Activity的onCreate多次调用的问题
- 关于Android的Activity的onCreate多次调用的问题
- 关于Android的Activity的onCreate多次调用的问题
- IE7/8当文本模式为杂项"Quirks" 导致JSP页面变样的问题
- js中一些自带的属性使用
- 关于ImageLoader 设置圆角参数后不显示图片的问题
- The Memory Sinkhole
- Hadoop 学习笔记
- inet_ntoa()多次调用时的问题
- 1130 -- 矩阵找值
- 数据结构与算法分析Java版练习1.15
- hadoop新增节点配置步骤
- xml之SAX解析
- x64 release模式下mysql编译连接错误解决办法
- java httpclient basic授权
- Hadoop第4周练习—HDFS读写文件操作
- 删除字符串中的空格字符