new和dispose的问题,请指教(50分)

  • 主题发起人 主题发起人 echolan
  • 开始时间 开始时间
E

echolan

Unregistered / Unconfirmed
GUEST, unregistred user!
假设两变量定义如下:
P1:^TMyImage;
MyRec:Array[0..n] of P1;
P2:^MyRec;
创建时候首先使用New(P1),New(P2);
New(P1)应该就是TMyImage类所占空间的大小;
请问这里New(P2)分配的空间如何计算。
另.释放时,调用Dispose(P2)释放P2,结果会不会导致P1也被释放?
 
1.p2放的是指针数组,32位一个,所以
空间为 (n+1)*32位
2.不会,你要先释放数组中每个TMyImage对象,再释放p2.
 

p2 能过样定义吗?
type
MyP=^TMyImage;
MyRec=Array[0..n] of MyP;
var
P2:^MyRec;
new(P2) ;//分配一串指针,空间大小为 (n+1) X 4
 
这样的话,那我事先调用Dispose(P2)应该就不会把P1释放掉了
 
Borland建议使用动态数组,
不会有内存泄漏
 
什么乱七八糟的?!

P1,P2都是指针,不管他们指向什么,他们的大小都是4字节!
dispose(P2)仅仅是释放这个指针,和P1没有任何关系。delphi还不会这样自作聪明的
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部