将int写入char数组

问题描述

| 我正在用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));