问题描述
|
我正在用C语言编写一个仿真器。它的内存是字节寻址的,因此我正在使用char数组,但是我需要读取/写入未对齐的32位整数。
目前,我正在使用
*((unsigned int*) &memory[address])
,但这似乎太可怕了。最好的方法是什么?
解决方法
您可以直接使用
memcpy()
。例如:
unsigned int x = 10;
unsigned char* memory = malloc(sizeof(unsigned char) * 512);
address = sizeof(unsigned char) * 256;
memcpy(memory + address,&x,sizeof(unsigned int));