我有下一个代码:
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;
这段代码安全吗?我担心下一件事:结构的大小超过缓冲区的大小,我对此感到恐惧。nd 之后的 struct 成员的值对我来说没有意义。我想知道这段代码在某些情况下是否会引发异常,如果是这样,在什么情况下?