>>607
char *ItoH(unsigned n,char *s) {
 sprintf(s,"%x\0",n);
 return s;
}

int main(void) {
 char s[64];
 printf( "%s", ItoH(100,s));
 return 0;
}

>>607 の ItoH() 関数の内部にも問題がある