请教各位兄弟一个超级简单问题:
var
piQueue: TQueue;//在初始化时Createprocedure TFrmMain.Btn1Click(Sender: TObject);
var
pi_write: PInteger;
begin
New(pi_write);
piQueue.Push(Pointer(pi));
end;procedure TFrmMain.Btn2Click(Sender: TObject);
var
pi_read: PInteger;
begin
pi_read := piQueue.Pop;
Dispose(pi_read);
end;//请问这样是否会有内存泄露?(假设我们这两步肯定是顺序执行的)
var
piQueue: TQueue;//在初始化时Createprocedure TFrmMain.Btn1Click(Sender: TObject);
var
pi_write: PInteger;
begin
New(pi_write);
piQueue.Push(Pointer(pi));
end;procedure TFrmMain.Btn2Click(Sender: TObject);
var
pi_read: PInteger;
begin
pi_read := piQueue.Pop;
Dispose(pi_read);
end;//请问这样是否会有内存泄露?(假设我们这两步肯定是顺序执行的)
其实告诉lz一个实例:指针的管理就好比体育里面的接力比赛。 申请的内存就好比那个棒子! 呵呵lz仔细想想看是不是有点类似。
piQueue.Push(Pointer(pi_write));
这种用法是没有问题的,在很多场合都会这样用的.