我有一个字符指针,需要使用此指针在内存中存储2个字节的值。 试过这个
*dataConfigured = configuredParameterCount;
*++dataConfigured = configuredParameterCount << 8;
除此之外还有更好的代码吗?
答案 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
是更安全的赌注(更慢但更安全)。