gpt4 book ai didi

C数组地址

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:47 25 4
gpt4 key购买 nike

我想制作 64 个 4 字节长的数组,我希望起始地址是我想要的,比如 0x1000_0000

int wspace[64];  //this makes a 64 int array

我希望 wspace 位于我选择的特定位置。
我该怎么做?

最佳答案

您开始进入可能未定义行为的灰色区域,但是,如果您知道您在做什么(例如如果您在嵌入式系统上并且您有内存-在该位置映射 I/O 或其他有效的可写内容),那么您可以尝试:

int *wspace = (int *)0x10000000;

根据您的编译器和环境,您可能还想将其标记为易变的,以便实现了解内存可能会独立于所述编译器对其所做的任何操作而发生变化:

volatile int *wspace = (volatile int *)0x10000000;

技术上它不是数组,但是,除非您要对其执行 sizeof 之类的操作,否则这可能并不重要。

完成后,像 wspace[1] = 0x12345678 这样的语句应该将该值写入内存位置 0x10000004-0x10000007(对于 4 字节整数)。请记住, 数字的哪一部分进入哪个内存位置将取决于您的体系结构的字节顺序。

关于C数组地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com