我有下面的代码:德尔福结构
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