我期待到一個字節數組轉換爲這裏的十六進制字符串的方法的轉換陣列是我的編碼:字節在純舊的C十六進制字符串
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();
}
只有第一個字節正確轉換休息不是。我如何修復代碼?
'buffer'只有10個元素,你界訪問的。 –
1. 16個字節對於10個十六進制數是不夠的; 2.你永遠不會釋放記憶; 3.每個十六進制數字需要2個字節。 – pmg
@DanielFischer如果你指向正確的方向,我將能夠修改它的代碼不會從其他原因工作。我不認爲我使用sprintf好! – opc0de