gpt4 book ai didi

C++如何直接访问内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:36 24 4
gpt4 key购买 nike

假设我在 C++ 中手动分配了大部分内存,比如 10 MB。

说到底,我想在这个区域的中间存储一些位。

我如何获取该位置的内存?

我所知道的访问原始内存的唯一方法是使用数组表示法。

最佳答案

数组表示法对此很有效,因为分配的内存可以看作是一个大数组。

// Set the byte in the middle to `123`
((char *) memory_ptr)[5 * 1024 * 1024] = 123;

我将类型转换为 char 指针,以防指针属于另一种类型。如果它已经是 char 指针,则不需要类型转换。


如果您只想设置一个位,请将内存视为具有 8000 万个独立位的巨大位域。要找到你想要的位,比如位号 40000000,你必须首先找到它所在的字节,然后是位。这是通过正常除法(找到字符)和模数(找到位)完成的:

int wanted_bit = 40000000;

int char_index = wanted_bit / 8; // 8 bits to a byte
int bit_number = wanted_bit % 8;

((char *) memory_ptr)[char_index] |= 1 << bit_number; // Set the bit

关于C++如何直接访问内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14324709/

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