Ищу в метод, чтобы преобразовать массив байтов в шестнадцатеричную строку здесь является то, что я закодированы:Преобразовать массив байтов в шестнадцатеричную строку в простом старом 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 байт; 2. Вы никогда не освобождаете память; 3. каждому шестнадцатеричному числу требуется 2 байта. – pmg
@ DanielFischer код не работает из-за других причин, если вы укажете меня в правильном направлении, я смогу его изменить. Я не думаю, что я использую sprintf хорошо! – opc0de