LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: cgl520cn

这个内存struct hostent *h = gethostbyname(addr);需不需要自己释放

[复制链接]
 楼主| 发表于 2004-4-2 14:57:25 | 显示全部楼层
satic 类型的变量是存在于BSS段 但是系统只分派第一层的地址空间,如果是在结构的下一层也要分配空间的话,则需要在堆里分配, 我认为是需要自己释放空间的,有谁有此函授的原代码, 我想好好看一下它的实现, 我只知道它的定义是全局静态的.
发表于 2004-4-2 16:31:21 | 显示全部楼层
第一层的地址空间是什么意思?
就算是子函数中的静态变量也一样是存在于bss段的。
 楼主| 发表于 2004-4-2 17:16:35 | 显示全部楼层
struct hostent {

  char     *h_name;
  char    **h_aliaseses;
  int        h_addrtype;
  int        h_length;
  char     **h_addr_list;
}

这里的地址空间能够都在BSS段分配吗? 肯定是不能的,因为h_addr_list在动态增长,
h_aliaseses也是动态增长的
发表于 2004-4-3 21:25:53 | 显示全部楼层
对了unp里不是有讲这个函数的时候有代码的嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表