首页
社区
课程
招聘
[求助]书中352页的一个问题
发表于: 2009-12-16 17:01 4676

[求助]书中352页的一个问题

2009-12-16 17:01
4676
本页的上边有一段源码,如下
static char addr[100];

he = gethostbyaddr(...);

if(he == NULL)
  strncpy(addr, inet_ntoa(in), sizeof(addr)) ;
else
  strncpy(addr, he->h_name, sizeof(addr)) ;

然后作者说,这里的sizeof(addr)返回的是指针的长度4,而不是静态数组的长度100

请问为什么我调试的时候返回的长度是100啊?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 423
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
根据刚才查到的资料,这里的问题应该是strncpy的最后一个参数不能是sizeof(addr)而应该是sizeof(addr)-1
2009-12-16 17:44
0
雪    币: 5160
活跃值: (4032)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
3
你的原始问题是什么姑且不谈,这句话,他说错了。你的调试结果与正确理论是一致的。
2009-12-17 09:14
0
游客
登录 | 注册 方可回帖
返回
//