この小さなコードに問題があります:
int main(int argc, char **argv){
struct ether_addr *s, *d;
u_char dir1[] = {0x00,0x11,0x22,0x33,0x44,0x55};
u_char dir2[] = {0x66,0x77,0x88,0x99,0xaa,0xbb};
s = dir1;
d = dir2;
printf("Together: %s\t%s\n",ether_ntoa(s),ether_ntoa(d));
printf("Apart: %s\t",ether_ntoa(s));
printf("%s",ether_ntoa(d));}
出力は同じはずですが、実際には次のようになります。
Together: 66:77:88:99:aa:bb 66:77:88:99:aa:bb
Apart: 0:11:22:33:44:55 66:77:88:99:aa:bb
両方のディレクトリを同じ行に入れると、そのうちの 1 つだけが出力されます。なぜそれが起こっているのですか?