BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #20690同步于 2007/8/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

函数返回指针的问题

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