Как я могу поместить значение 0x00 в массив, созданный malloc. Я попробовал приведенный ниже код, но он не сработал. приветствуется любой ответ!
char* a = malloc(3 * sizeof(char));
*a= 0x20;
*(a+1)= 0x00;
*(a+2) = 0x32;
Ваш код действителен, вы имеете в виду он ничего не печатает вместо это не сработало?
когда массив видит 0x00, он думает, что это конец массива. a становится {0x20}. Я хочу = {0x20,0x00,0x32}
when array sees Каким образом определяется размер массива? Как ты видит размер массивов?
Что вы ожидаете от печати a?
Я выделил размер в первой строке кода. на самом деле вопрос в том, как я могу создать {0x20,0x00,0x32} в куче ???????
Нет, я не хочу печатать.
Ваш код делает именно это. Где показывает {0x20}?
Да. ты прав. это была просто проблема с представлением в режиме отладки Qt. в окне локальных переменных и переменных Qt переменная a равна 0x20. Спасибо за ваше время.





В функции printf0x00 считается концом строки.
Если вы хотите распечатать весь массив, вы можете использовать
for(int i = 0;i < 3;i++)
printf("0x%02X\n", a[i]);
Вы можете использовать его напрямую, и это правильно.
Любопытно напечатать ведущий "0x" со спецификатором "%d". Предложите обзор.
Что означает
but it didn't work.?