使用字符指针存储整数

时间:2014-02-19 07:20:25

标签: c++ c

我有一个字符指针,需要使用此指针在内存中存储2个字节的值。 试过这个

*dataConfigured =  configuredParameterCount;   
*++dataConfigured =  configuredParameterCount << 8; 

除此之外还有更好的代码吗?

3 个答案:

答案 0 :(得分:4)

假设:

char dataConfigured[2];
uint16_t configuredParameterCount = 4711;

你可以这样做:

memcpy(dataConfigured, &configuredParameterCount, sizeof(dataConfigured));

答案 1 :(得分:0)

如果你有

char* dataConfigured = ..;
short data = 123;

你可以做到

*((short*)dataConfigured) = data;

小心 - 你需要确保有足够的内存保留。

答案 2 :(得分:0)

假设configuredParameterCount的类型为short(2个字节),您只需执行此操作

*((short*)dataConfigured) = configuredParameter;

但请确保dataConfigured指向的缓冲区有足够的空间。

正如@Calvin所指出的,这可能会导致某些计算机体系结构出现问题(尽管它可以在最常见的设备上运行,例如x86和x64)。但是如果你想要在所有架构上memcpy是更安全的赌注(更慢但更安全)。