int num4[10] = {3,4,8,9};
int num2[10] = {3,8,6,8};
compare2 = memcmp(num4, num2, 4);
Run Code Online (Sandbox Code Playgroud)
为什么compare2的值为零,即使数组不相等?
第三个参数memcmp
是字节数,而不是元素数.
你的意思是:
memcmp(num4, num2, 4 * sizeof num4[0]);
Run Code Online (Sandbox Code Playgroud)
您现有的代码仅比较前四个字节.如果您的系统具有4字节的整数(这是常见的),那么您只比较了第一个int.
我使用sizeof num4[0]
而不是sizeof(int)
使代码仍然有效,即使您稍后更改num4
并num2
成为不同类型的数组.