[fpc-pascal] Using Move() with dynamic arrays  -> RunError(0)
    Žilvinas Ledas 
    zilvinas.ledas at dict.lt
       
    Tue Dec  8 23:43:16 CET 2009
    
    
  
Hello all,
I'm trying to use Move() with dynamic arrays, but don't know why it 
fails...
When instead commented out "for .. do" code I use Move() code my app 
gets RunError(0) after some time. When I use "for .. do" everything 
works ok.
I'm using Free Pascal Compiler version 2.3.1 [2009/11/03] for i386 on 
Windows 7.
What can be the problem here?
type
  TArrayOfSmallInt = array of SmallInt;
function TFrame.getAllFrame(): TArrayOfSmallInt;
var
  tmpBuf: TArrayOfSmallInt;
  i: Integer;
begin
  startOverlapLen := Length(startOverlap);
  mainAreaLen := Length(mainArea);
  endOverlapLen := Length(endOverlap);
  SetLength(tmpBuf, startOverlapLen+mainAreaLen+endOverlapLen);
{
  for i := 0 to startOverlapLen-1 do
    tmpBuf[i] := startOverlap[i];
  for i := 0 to mainAreaLen-1 do
    tmpBuf[i+startOverlapLen] := mainArea[i];
  for i := 0 to endOverlapLen-1 do
    tmpBuf[i+startOverlapLen+mainAreaLen] := endOverlap[i];
}
  Move(startOverlap[0], tmpBuf[0], SizeOf(SmallInt)*startOverlapLen);
  Move(mainArea[0], tmpBuf[startOverlapLen], SizeOf(SmallInt)*mainAreaLen);
  Move(endOverlap[0], tmpBuf[startOverlapLen+mainAreaLen], 
SizeOf(SmallInt)*endOverlapLen);
   Result := tmpBuf;
end; 
Regards,
Žilvinas
    
    
More information about the fpc-pascal
mailing list