Запись int в массив char - PullRequest
1 голос
/ 26 мая 2011

Я пишу эмулятор на C. Его память адресуется в байтах, поэтому я использую массив символов, но мне нужно читать / записывать 32-разрядные целые числа без выравнивания.

В настоящее время яиспользуя *((unsigned int*) &memory[address]), но это кажется довольно ужасным.Какой лучший способ сделать это?

1 Ответ

4 голосов
/ 26 мая 2011

Вы можете использовать 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)); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...