我有一个巨大的字节数组(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;
但我得到同样的错误。我做错了什么,我能做什么才能得到我想要的成就?
答案 0 :(得分:2)
您无法在C ++中为=
分配数组。当像这样使用时,数组名称衰减为指针,因此您尝试将数组的地址写入内存位置。使用memcpy()
复制内存。
memcpy((void*)0x123456, (void*)mBytes, sizeof(mBytes));