gpt4 book ai didi

c - 将一个int值插入到一个char类型的指针中

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

所以我想做一个自定义内存分配器,你基本上输入一定大小的字节,它会创建一个 N 字节的巨大舞台。一切工作正常,除了我需要输入一个 int 并将其显示为 4 个字节到十六进制。例如:

如果我有:

unsigned char* char_pointer = (unsigned char*)malloc(4*sizeof(uint8_t));
int value = 500;
for(int i =0 ; i<8;i++){
printf("%02X ", *(char_pointer+i))
}

所以这会显示

00 00 00 00

到目前为止一切顺利。但是如果我想这样做,例如:

*char_pointer = value;

会显示

F4 00 00 00

我真正想要展示的是这个:

F4 01 00 00

因为 int 的值是 500,即十六进制的 1F4。我该如何解决这个问题?

最佳答案

它被转换为 char。尝试

*(int*)char_pointer = value;

您可以选择显式写入字节:

*(char_pointer+0) = *(((char*)(&value))+0)
*(char_pointer+1) = *(((char*)(&value))+1)
*(char_pointer+2) = *(((char*)(&value))+2)
*(char_pointer+3) = *(((char*)(&value))+3)

关于c - 将一个int值插入到一个char类型的指针中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47573318/

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