返回信息流像gethostbyname返回的是hostent*,
我知道这一般都不用自己去释放指针内存的,但是不明白系统
是在什么时候开始释放这片内存的。
有没有人知道阿?
这是一条镜像帖。来源:北邮人论坛 / soft-design / #20690同步于 2007/8/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
函数返回指针的问题
Lynus
2007/8/28镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
hostent是函数局部static的变量
不能由调用者修改或释放其值。。。你只能读。。。
而且是非线程安全(not thread safe)的。。。
释放的时机是调用函数的线程退出时为止。。。WSACleanup对这个变量无效。。。这是M$自己说的。。。
看这里。。。http://support.microsoft.com/kb/q237572/
Linux/UNIX下就不知道了。。。应该也是一样。。。不过提供了线程安全的gethostbyname_r。。。
闪人。。。睡觉。。。
PS:没必要新开一贴吧。。。在那贴里接着问就是了。。。
有一个原则是,你自己new的东西要自己delete,直接返回的指针一般不用你来释放。
这就和MFC中用GetDC()得到窗口DC的指针你不能DeleteDC一样。
也有例外,就是有一个API,名字忘记了,好像是用来让用户浏览目录的,返回指针需要用户释放。但这样的情况函数的文档里都有专门说明的。