c - 如何从 C 中的 "raw"内存中读取/写入类型值?

标签 c memory casting memory-access

我该如何做这样的事情?

void *memory = malloc(1000);  //allocate a pool of memory
*(memory+10) = 1;  //set an integer value at byte 10
int i = *(memory+10);  //read an integer value from the 10th byte

最佳答案

简单示例:将内存视为无符号字符数组

void *memory = malloc(1000);  //allocate a pool of memory
uint8_t *ptr = memory+10;  
*ptr = 1 //set an integer value at byte 10
uint8_t i = *ptr;  //read an integer value from the 10th byte

您也可以使用整数,但是您必须注意一次设置的字节数。

关于c - 如何从 C 中的 "raw"内存中读取/写入类型值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11490984/

相关文章:

java - 为什么此转换不会返回正确的方法? (以弗软件)

python-3.x - python : casting map object to list makes map object empty?

c++ - OpenSSL 广播所有连接的客户端 C

c - 说当我将一个项目放在数组的开头时出现段错误

c - 尝试添加到动态数组时程序崩溃

c++ - 在 memset 为默认值后验证数组的更改

c - realloc 不是重新分配内存

javascript - 由于帧导致的 addEventListener 内存泄漏

c - Swift:无法将函数指针转换为 (void*) 以便在 C 风格的第三方库中使用

c - C 中的字节交换(字节顺序)