is this a FBSD printf bug?

abc at ai1.anchorage.mtaonline.net abc at ai1.anchorage.mtaonline.net
Sat Jun 21 03:13:01 PDT 2003


FBSD 4.8

i hope this isn't a question based on extreme
ignorance - i haven't programmed in C in a
long time, and i don't have another machine
to test this on.  i can't understand why
the output of the following code produces
"ints" when given variables of type "char",
so it looks like a bug to me ...

#include <stdio.h>
///////////////////////////////////////////////////////////////////////////////
int                     main(int argc, char *argv[]) {

#define LEN_ARRAY 16
char a[LEN_ARRAY+1];
int i;

a[0]=0x00;
a[1]=0x11;
a[2]=0x22;
a[3]=0x33;
a[4]=0x44;
a[5]=0x55;
a[6]=0x66;
a[7]=0x77;
a[8]=0x88;
a[9]=0x99;
a[10]=0xaa;
a[11]=0xbb;
a[12]=0xcc;
a[13]=0xdd;
a[14]=0xee;
a[15]=0xff;

    for ( i = 0; i < LEN_ARRAY; ++i ) printf("[%02i]%02x\n", i, a[i]);
}
///////////////////////////////////////////////////////////////////////////////
// 
// OUTPUT:
// 
// [00]00
// [01]11
// [02]22
// [03]33
// [04]44
// [05]55
// [06]66
// [07]77
// [08]ffffff88 ???
// [09]ffffff99 ???
// [10]ffffffaa ???
// [11]ffffffbb ???
// [12]ffffffcc ???
// [13]ffffffdd ???
// [14]ffffffee ???
// [15]ffffffff ???


More information about the freebsd-questions mailing list