gpt4 book ai didi

c++ - 将值存储在指针 var 中

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:54 24 4
gpt4 key购买 nike

如何在 *pData 中存储 int 值并显示其中的值?

  int id = 12;
int age = 14;
unsigned char* pData = new unsigned char[8];
memcpy(pData,&id,4);/* using memcpy to copy */
pData = pData + 4;
memcpy(pData,&age,4);/* using memcpy to copy */
// How to print value from buffer *pData

最佳答案

在使用 memcpyint 的字节复制到 unsigned char 缓冲区后,显示 int 的唯一正确方法是将字节复制回 int .例如:

int temp_int;
memcpy(&temp_int, pData, sizeof temp_int);
std::cout << temp_int << '\n';
memcpy(&temp_int, pData + sizeof temp_int, sizeof temp_int);
std::cout << temp_int << '\n';

尝试将缓冲区重新解释为 int 会违反严格的别名规则,从而导致未定义的行为。

关于c++ - 将值存储在指针 var 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129580/

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