将char数组写入特定的内存地址

时间:2017-01-13 20:46:38

标签: c++ arrays memory byte memory-address

我有一个巨大的字节数组(char数组),我用来写入另一个地址。 e.g。

char myBytes[] = { 0x43, 0x31, 0x63 };//just an example
(char*)0x123456 = &myBytes;

但问题是我收到错误

"expression must be a modifiable lvalue"

我尝试过其他一些事情,比如

char myBytes[] = { 0x43, 0x31, 0x63 };//just an example
*(char*)0x123456 = myBytes;

但我得到同样的错误。我做错了什么,我能做什么才能得到我想要的成就?

1 个答案:

答案 0 :(得分:2)

您无法在C ++中为=分配数组。当像这样使用时,数组名称衰减为指针,因此您尝试将数组的地址写入内存位置。使用memcpy()复制内存。

memcpy((void*)0x123456, (void*)mBytes, sizeof(mBytes));