我有下面的代碼:德爾福結構
type THead = packed record
znmpc: byte;
znmpcch: array [0..1] of char;
znc, zneispr, zkpd, zkps, nd: byte;
zb9, zb10, zb11, zb12, zb13, zb14, zb15: byte;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
db: ^THead;
a: array [0..9] of byte;
begin
a[7] := 9;
db := @a;
ShowMessage(IntToStr(db.nd));
end;
這段代碼安全嗎?我擔心下一件事:struct的大小超過了緩衝區的大小,我對此感到恐懼。 nd之後的struct成員的值對我來說沒有任何意義。我想知道這個代碼在某些情況下是否會拋出異常,如果是這樣的話?
在你的情況下,它是完全安全的。 – 2012-04-09 10:36:20