0
int num4[10] = {3,4,8,9};
int num2[10] = {3,8,6,8};
compare2 = memcmp(num4, num2, 4);
即使數組不相等,爲什麼compare2的值爲零?比較兩個數組時,它如何讀取「零」?
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個字節的整數(這是常見的),那麼你只比較第一個整數。
我用sizeof num4[0]
代替sizeof(int)
從而使代碼仍然有效,即使您以後更改num4
和num2
是一個不同類型的數組。