C++ memcpy 读取内存

c++ memcpy read memory

我正在尝试使用 memcpy 读取内存。

BYTE test[] = {0x01};
BYTE test2[] = {0x00};
memcpy (test, test2, sizeof(test));
if (test == test2){
    MessageBox::Show("Same");
}else{
    MessageBox::Show("Different");
}

为什么test和test2总是不一样?

感谢您的帮助。

因为您正在测试数组地址的相等性。请尝试使用 memcmp

您正在比较 testtest2 的地址。请改用 memcmp

您的代码等同于

if (&test[0] == &test2[0]){

改成

if (memcmp(test, test2, sizeof(test)) == 0)

应该会按预期工作。

当数组的名称被单独使用时,它会变成一个指针,因此您比较的是两个数组的地址,而不是它们的内容。