【发布时间】:2020-04-25 17:38:03
【问题描述】:
我在许多关于此的线程中没有找到任何解决方案。 我的确切问题是:
我有一个整数数组,例如unsigned int arr[2] = {0xFEBD1213, 0x1213FEBD};
我想逐个字符地访问这些整数,这意味着我需要阅读: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++);
}
}
(我知道有很多更简洁的编码方式,但我无法控制给定数组的类型)
【问题讨论】:
-
ptr = (ptr + i);==>ptr++; -
“我还没有成功。”失败是什么?您错过了一个重要信息。