关于inet_ntoa返回的值是静态变量
来源:互联网 发布:js删除浏览器cookie 编辑:程序博客网 时间:2024/05/16 06:22
今天终于以前写程序就在inet_ntoa()出的问题:
The inet_ntoa() function converts the Internet host address in given in network byte order to a string in standard numbers-and-dots notation. The string is returned in a statically allocated buffer, which subsequent calls will overwrite.
说明它是一个由inet_ntoa() 控制的静态的固定的指针,所以每次调用inet_ntoa() ,它就将覆盖上次调用时所得的IP地址。例如:
char* strA = inet_ntoa(s_a);
char* strB = inet_ntoa(s_b);
lstrcpyA(threadparam[i].IPAstr, strA);
lstrcpyA(threadparam[i].IPBstr, strB);
假如你需要保存这个IP地址,使用lstrcpyA()函数来指向你自己的字符 指针。
应该如下:
char* strA = inet_ntoa(s_a);
lstrcpyA(threadparam[i].IPAstr, strA);
char* strB = inet_ntoa(s_b);
lstrcpyA(threadparam[i].IPBstr, strB);
所以,你如果需要多次结果,应该没调用一次,使用strcpy复制到你的缓冲区(这种解决方法有待于亲自考证) 。
- 关于inet_ntoa返回的值是静态变量
- 返回内部静态成员的陷阱inet_ntoa()
- C/C++返回内部静态成员的陷阱(inet_ntoa)
- inet_ntoa的返回值类型错误
- 一段代码既说明printf的入栈顺序是从右想做的,又说明inet_ntoa返回值是放在一个静态区域的,连续执行会覆盖
- inet_ntoa()返回字符串的生命周期
- 怪异的inet_ntoa函数---C/C++返回内部静态成员的陷阱
- 怪异的inet_ntoa函数---C/C++返回内部静态成员的陷阱
- C返回内部静态成员的陷阱--inet_ntoa(转)
- 关于inet_ntoa函数的思考
- 关于inet_ntoa函数的思考
- 关于返回局部变量的
- 关于Python的静态变量
- 关于静态变量的继承
- 关于OBJC的静态变量
- 静态变量是有顺序的!
- 全局静态变量是干什么的
- inet_ntoa连续调用两次产生的返回值相同的原因
- UVa 10405 - Longest Common Subsequence
- tomcat启动分析
- Spring JTA应用之JOTM配置
- 纪念我的学生大本营
- 关于Arraylist的理解
- 关于inet_ntoa返回的值是静态变量
- #define、const、typedef的差别
- mini2440学习笔记一 —— 基础
- 8皇后
- 毕业五年后大家拉开差距的原因
- Spring AOP 简单实例
- HDU 2010 水仙花数
- 悲剧的代码工
- Review of Wrapper Facade in POSA2