将 int 写入 char 数组

发布于 2024-11-09 11:31:14 字数 162 浏览 0 评论 0原文

我正在用 C 语言编写一个模拟器。它的内存是字节可寻址的,因此我使用的是 char 数组,但我需要读取/写入未对齐的 32 位整数。

目前我正在使用 *((unsigned int*) &memory[address]),但它看起来非常糟糕。最好的方法是什么?

I'm writing an emulator in C. Its memory is byte-addressible so I'm using a char array, but I need to read/write unaligned 32-bit integers.

Currently I'm using *((unsigned int*) &memory[address]), but it seems pretty horrible. What's the best way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深者入戏 2024-11-16 11:31:14

您可以直接使用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)); 

You can use memcpy() directly. For example:

unsigned int x = 10;
unsigned char* memory = malloc(sizeof(unsigned char) * 512);
address = sizeof(unsigned char) * 256;

memcpy(memory + address, &x, sizeof(unsigned int)); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文