在應用中發現靜態數組和動態數組是有區別的:
procedure TForm1.Button1Click(Sender: TObject);
var
RsltStream: TMemoryStream;
picBuffer: TByteArray;
begin
RsltStream := TMemoryStream.Create;
RsltStream.LoadFromFile('e:\pic.txt');
RsltStream.Position := 0; // 流讀取操作前必須將指針回到起始位
RsltStream.ReadBuffer(picBuffer,RsltStream.Size); //靜態數組中picBuffer 和picBuffer[0] 的指針是相同的
end;
procedure TForm1.Button1Click(Sender: TObject);
var
RsltStream: TMemoryStream;
picBuffer: TBytes; //array of byte
begin
RsltStream := TMemoryStream.Create;
RsltStream.LoadFromFile('e:\pic.txt');
RsltStream.Position := 0; // 流讀取操作前必須將指針回到起始位
setlength(picBuffer, RsltStream.Size); //給動態數組定義長度
RsltStream.ReadBuffer(picBuffer[0],RsltStream.Size); //動態數組中必須用picBuffer[0] ,否則地址錯誤,數據也是錯誤的
end;
轉自:http://www.cnblogs.com/wxy8/archive/2011/01/28/1946921.html