バイト配列を 16 進数文字列に変換する方法を検討しています。ここでコーディングしたものを次に示します。
unsigned char buffer[] = {0xAA,0xBB,0x01,0xAB,0x11,0x12,0x13,0x22,0x11,0x14};
int _tmain(int argc, _TCHAR* argv[])
{
char * asta = (char*)malloc(16);
memset(asta,0,16);
int k;
for (k = 0; k < 16 ; k++)
{
sprintf(&asta[k],"%X",buffer[4 + k]);
}
printf("%s",asta);
_getch();
}
最初のバイトのみが正しく変換され、残りは正しく変換されません。コードを修正するにはどうすればよいですか?