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
。
您正在比较 test
和 test2
的地址。请改用 memcmp
。
您的代码等同于
if (&test[0] == &test2[0]){
改成
if (memcmp(test, test2, sizeof(test)) == 0)
应该会按预期工作。
当数组的名称被单独使用时,它会变成一个指针,因此您比较的是两个数组的地址,而不是它们的内容。
我正在尝试使用 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
。
您正在比较 test
和 test2
的地址。请改用 memcmp
。
您的代码等同于
if (&test[0] == &test2[0]){
改成
if (memcmp(test, test2, sizeof(test)) == 0)
应该会按预期工作。
当数组的名称被单独使用时,它会变成一个指针,因此您比较的是两个数组的地址,而不是它们的内容。