C ++ memcmp失败,带有unsigned char数组?

时间:2012-06-14 15:53:25

标签: c++ memcmp

我使用memcmp遇到了一个小问题。我有两个数组(长度= 3个字节),数据完全相同。

如果我尝试将它们与memcmp进行比较,它会失败吗?!

if (memcmp(ucbuffer, ucnewbuffer, buffer.sDeviceData.sLenght)) {
    cout << "val written, val ok!\n";
};

ucbuffer,ucnewbuffer都是unsigned char *,并使用

分配
calloc(buffer.sDeviceData.sLenght, sizeof(unsigned char);

如果我手动比较两个数组,它们将导致完全相同。

你有什么想法吗?

度过一个愉快的夜晚。

1 个答案:

答案 0 :(得分:9)

当缓冲区比较相等时,该函数返回(即,不为真)。