int num4[10] = {3,4,8,9};
int num2[10] = {3,8,6,8};
compare2 = memcmp(num4, num2, 4);
为什么即使数组不相等,compare2的值也是零?
最佳答案
memcmp
的第三个参数是字节数,而不是元素数。
你的意思是:
memcmp(num4, num2, 4 * sizeof num4[0]);
您现有的代码只比较前四个字节。如果系统有4字节的int(这是常见的),则只比较第一个int。
我使用了
sizeof num4[0]
而不是sizeof(int)
,这样即使以后将num4
和num2
更改为不同类型的数组,代码仍然可以工作。