gpt4 book ai didi

c - 如何将 4 个字节的整数值存储在分配为 char 类型的 block 内存中

转载 作者:太空狗 更新时间:2023-10-29 15:59:59 25 4
gpt4 key购买 nike

我分配了一 block char 类型的内存,大小为 10 MB(即 mem_size = 10 ):

int mem_size = 10; 
char *start_ptr;
if((start_ptr= malloc(mem_size*1024*1024*sizeof(char)))==NULL) {return -1;}

现在我想将大小信息存储在内存块的 header 中。为了让自己更清楚,假设:start_ptr = 0xaf868004(这是我从执行中获得的值,每次都会更改)。

现在我想把大小信息放在这个指针的开头,即 *start_ptr = mem_size*1024*1024;

但我无法将此信息放入 start_ptr。我认为原因是因为我的 ptr 是 char 类型,它只占用一个字节,但我试图存储占用 4 个字节的 int,这就是问题所在。

我不确定如何解决这个问题..

最佳答案

您需要将char 指针转换为int 指针。分两步:

int *start_ptr_int = (int*)start_ptr;
*start_ptr_int = mem_size * 1024 * 1024;

一步到位:

*((int*)start_ptr) = mem_size * 1024 * 1024;

指针名称前面的 (int*) 告诉编译器:“是的,我知道这实际上不是指向 int 的指针,只是假装暂时,好吗?”

关于c - 如何将 4 个字节的整数值存储在分配为 char 类型的 block 内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515084/

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