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

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

2009-12-16 17:01
4553
本页的上边有一段源码,如下
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啊?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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