M
mill666
Unregistered / Unconfirmed
GUEST, unregistred user!
我定义了一个链表结构:
让后在窗体上放置一个按钮,按钮的click事件如下:
procedure TForm1.Button1Click(Sender: TObject);
var
DatPktdatpkt;
s:ansistring;
begin
DatPkt:=PdatPkt( GlobalAlloc(GPTR, sizeof(PDatPkt)) );
ZeroMemory(datpkt,sizeof(Pdatpkt));
datpkt.data:='hello';
datpkt.next:=nil;
s:= ansistring(datpkt.data);
showmessage(s);
GlobalFree(DWORD(datpkt));
end;
然后运行,单击按钮,能够显示'hello',可是马上就出现内存错误了;我试了各种办法,都是出现内存异常错误;
不知道为什么啊。
请问怎么给链表分配内存、释放内存、清空内存等??
千万别说用TList代替,^_^.
代码:
PDatPkt = ^TDatPkt;
TDatPkt = packed record
len:integer
data:array[0..256-1] of char
next:PDatPkt;
end;
让后在窗体上放置一个按钮,按钮的click事件如下:
procedure TForm1.Button1Click(Sender: TObject);
var
DatPktdatpkt;
s:ansistring;
begin
DatPkt:=PdatPkt( GlobalAlloc(GPTR, sizeof(PDatPkt)) );
ZeroMemory(datpkt,sizeof(Pdatpkt));
datpkt.data:='hello';
datpkt.next:=nil;
s:= ansistring(datpkt.data);
showmessage(s);
GlobalFree(DWORD(datpkt));
end;
然后运行,单击按钮,能够显示'hello',可是马上就出现内存错误了;我试了各种办法,都是出现内存异常错误;
不知道为什么啊。
请问怎么给链表分配内存、释放内存、清空内存等??
千万别说用TList代替,^_^.