[Lazarus] Passing a section of an array to a function.
Dave Coventry
dgcoventry at gmail.com
Mon Sep 10 08:36:41 CEST 2012
Hi,
I have an array of Byte which I have loaded from a file.
I want to process a 100 byte section of the array which starts at
offset 32 in my array.
My function (or procedure) is as follows:
procedure decompress_r(cbuf: array of byte);
var
len,i: integer;
begin
i:=1;
if (cbuf[0]and $F0)=$20 then
begin
Inc(i,2);
len:=cbuf[i]and $7;
end;
...
end;
I call my procedure by
decompress_r(&buf[32]);
It seems to work. the first element in the array is 0x20, but the rest
of the array is garbage.
The array sent is:
buf[32]=32
buf[33]=0
buf[34]=0
buf[35]=7
buf[36]=0
The array received is
cbuf[0]=32
cbuf[1]=27
cbuf[2]=255
cbuf[3]=247
cbuf[4]=255
Can anyone tell me the correct way to pass the portion of the array to
the function?
Many thanks.
Dave
More information about the Lazarus
mailing list