sprintf(&dd[i],"%0x",pkt_data[i]); 不是一一对应拷贝,why?
我用pcap_next_ex(adhandle, &header, &pkt_data)捕捉网络的数据,捕捉到的数据应该是放在了pkt_data中
我用下边的循环,将数据拷贝到了char数组中。
char dd[512];
for (int i=0;i<header->caplen;i++)
{
sprintf(&dd[i],"%0x",pkt_data[i]);
dd[i] = pkt_data[i];
}
但是:
当pkt_data[x] = 0xbd时,
dd[x] = 'b';
dd[x+1] = 'd';
为什么dd[x]不是0xbd。
也就是说一句sprintf(&dd[i],"%0x",pkt_data[i]);它将pkt_data的一个数据元素放到了dd的两个数据元素位置中,而不是一一对应,这是为什么呢?谢谢!