请教各位兄弟一个超级简单问题:
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;//请问这样是否会有内存泄露?(假设我们这两步肯定是顺序执行的)

解决方案 »

  1.   

    pi_write是局部变量,new之后,你没有释放
      

  2.   

    pi_write是局部变量,new之后,你没有释放,顺序执行时会内存泄露的。
      

  3.   

    你这里是没问题地........
    其实告诉lz一个实例:指针的管理就好比体育里面的接力比赛。   申请的内存就好比那个棒子!  呵呵lz仔细想想看是不是有点类似。
      

  4.   

    Harryfin 没装打汉字的输入法! 
      

  5.   

    应该是
     piQueue.Push(Pointer(pi_write));
    这种用法是没有问题的,在很多场合都会这样用的.