我从框架中将IP address放到struct:
unsigned char destination_address[4];
在我的主程序中,我加载了一个struct:
struct ipv4 naglowek_ipv4;
upakuj_ipv4(bufor_eth_ipv4, &naglowek_ipv4);
尝试以人类可读的格式显示这个":
printf("Destination Adress: %ld.%ld.%ld.%ld\n",
strtol(naglowek_ipv4.destination_address[0],NULL,16),
strtol(naglowek_ipv4.destination_address[1],NULL,16),
strtol(naglowek_ipv4.destination_address[2],NULL,16),
strtol(naglowek_ipv4.destination_address[3]));
这并没有显示出我认为的方式。有谁知道为什么?
答案 0 :(得分:1)
destination_address
不是字符串,只是四个字节的数组。因此,请简化您的呼叫:
printf("Destination Adress: %d.%d.%d.%d\n",
naglowek_ipv4.destination_address[0],
naglowek_ipv4.destination_address[1],
naglowek_ipv4.destination_address[2],
naglowek_ipv4.destination_address[3]);
你会注意到你是否包含strtol
的声明(以及你没有将足够的参数传递给最后一次调用的事实):
#include <stdlib.h> /* provides strtol() function */