我想比较两个字节数组。
byInputBuffer
是我由外部设备填充的数组。每次主循环迭代都有 256 个字节,并且总是放在byInputBuffer
. 它是这样声明的:
byInputBuffer: array [0..1023] of byte;
DataArray
是一个动态声明大小的数组。所以数组声明如下:
DataArray : Array of Byte;
然后在代码大小中声明如下:
SetLength(DataArray, DataLengthInt);
其中 DataLengthInt 为 130952。
主循环从 0 迭代到 511,但是当 i=0 时,我在下面的代码中得到 BoolToStr(verify)=-1:
leftBytes := 256;
verify := CompareMem(@byInputBuffer, @DataArray[(i*256)], leftBytes);
但是我检查了两个数组的内容,当 i=0 与前 256 个元素相等时。
我的问题是为什么 CompareMem 返回 -1?
其他使用的声明:
leftBytes : Integer;
verify : Boolean;