1,数组长度获取
const
sCode: array[0..15] of Byte = (
$52, $83, $EC, $8B, $35, $06, $03, $45, $0C, $5D, $C2, $08, $00, $8D, $40, $00
);
var scode2: array of byte;
//静态数组获取数组长度
n := sizeof(sCode); //结果是 16
m := sizeof (scode2) ; // 结果是指针的长度 4
//动态数组长度正确获取
m := length(scode2); //结果 16
//
2,数组内存copy
const
sCode: array[0..15] of Byte = (
$52, $83, $EC, $8B, $35, $06, $03, $45, $0C, $5D, $C2, $08, $00, $8D, $40, $00
);
var scode2: array of byte;
pBuffer: Pointer;
n: Integer;
//静态数组内存copy
CopyMemory(pBuffer, @sCode, sizeof(sCode)); //拷贝scode到内存 正确
//动态数组内存copy
//CopyMemory(pBuffer, @sCode2, sizeof(sCode)); //拷贝scode到内存 内存使用时报错
CopyMemory(pBuffer, @sCode2[0], sizeof(sCode)); //正确的拷贝scode到内存 内存使用时结果正常
//
静态数组 下标默认0开始 拷贝无需指定下标
动态数组则必须指定数组的开始位置,也就是下标[0]