Я не нашел никакого решения среди множества тем по этому поводу. Моя точная проблема:
У меня есть массив целых чисел, таких как unsigned int arr[2] = {0xFEBD1213, 0x1213FEBD};
Я хотел бы получить доступ к этим целым числам char с помощью char, что означает, что мне нужно прочитать: 0x13, 0x12, 0xBD, 0xFE, 0xBD, 0xFE, 0x13, 0x12
. Я перепробовал много-много вещей, но пока не получилось.
Примечание. Я также хотел бы сделать обратное: иметь массив символов с размером, например size %4 == 0
, и читать его как целочисленный массив. Например: unsigned char arr[8] = {0x13, 0x12, 0xBD, 0xFE, 0xBD, 0xFE, 0x13, 0x12}
и читать 0xFEBD1213, 0x1213FEBD
;
Есть ли способ сделать такую вещь?
Минимальный воспроизводимый пример:
#include <stdio.h>
#include <stdlib.h>
void main(void){
unsigned int arr[2] = {0xFEBD1213, 0x1213FEBD};
unsigned char * ptr;
ptr = *&arr; // I need a variable. Printing it doesn't matter to me. I am aware that there are easy solutions to print the right values there.
for(int i = 0; i < 2 * 4; i++){
printf("%x\n", *ptr);
ptr = (ptr++);
}
}
( Я знаю, что есть много более чистого способа кодирования этого, но я не могу контролировать тип данного массива)