将字符数组写入特定的内存地址
Write char array to specific memory-address
我有一个巨大的字节数组(字符数组)用于写入另一个地址。
例如
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;
但是我得到了同样的错误。我做错了什么,我该怎么做才能完成我想要的事情?
您不能在 C++ 中使用 =
分配数组。数组名称在这样使用时会衰减为指针,因此您试图将数组的地址写入内存位置。使用memcpy()
复制内存
memcpy((void*)0x123456, (void*)mBytes, sizeof(mBytes));
我有一个巨大的字节数组(字符数组)用于写入另一个地址。 例如
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;
但是我得到了同样的错误。我做错了什么,我该怎么做才能完成我想要的事情?
您不能在 C++ 中使用 =
分配数组。数组名称在这样使用时会衰减为指针,因此您试图将数组的地址写入内存位置。使用memcpy()
复制内存
memcpy((void*)0x123456, (void*)mBytes, sizeof(mBytes));