c语言字符指针相减的问题

Ease.Hack 2019-07-21 02:41:43
在用packet32编写的arp欺骗中,有一处字符类型的指针相减乘了2,请问是为什么啊,字符类型的指针相减后不是不用乘以元素所占的字节数么(因为char类型就占一个字节),各位大神们,菜鸟一个啊 char *name1,name2; char adapter_name[2048]; char adapter_list[10][1024]; if(PacketGetAdapterNames((char*)adapter_name, &adapter_length)==FALSE) { printf("PacketGetAdapterNames error:%d\n",GetLastError()); return -1; } name1=adapter_name; name2=adapter_name; i = 0; while((*name1!='\0') || (*(name1-1)!='\0')) { if(*name1=='\0') { memcpy(adapter_list[i],name2,2*(name1-name2)); name2=name1+1; i++; } name1++; }
...全文
72 1 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
NorZ 2019-07-22
不知道原理,需要联系上下文代码看看 adapter_name 的数据排列和 adapter_list 的使用方式
你可以把 adapter_name 打印出来,看看每次到底拷贝了些什么过去
回复
Ease.Hack 2019-07-21
大佬们请教啊,,,,,
回复
发帖
其它技术问题
创建于2007-09-28

3842

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2019-07-21 02:41
社区公告
暂无公告