Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Mehrdimensionalen dynamischen Array freigeben


Andreas Pfau - So 29.12.02 22:27
Titel: Mehrdimensionalen dynamischen Array freigeben
Weiß jemand, wie ich einen mehrdimensionalen dynamischen Array freigeben muss? Bei einen eindimensionalen kann ich das ja so machen:

Quelltext
1:
2:
3:
X: Array Of Byte;
{ ... }
Finalize(X);


Was muss ich dann hier machen:

Quelltext
1:
X: Array Of Array Of Byte;                    


Muss ich jedes element explizit freigeben?

Quelltext
1:
2:
3:
For I := Low(X) To High(X) Do
 Finalize(X[I]);
Finalize(X);


Oder genügt es, den obersten Array freizugeben?

Quelltext
1:
Finalize(X);                    


AndyB - Mo 30.12.02 00:28

Es genügt sogar nur ein:

Quelltext
1:
X := nil;                    

Dieses wird vom Compiler automatisch in einen Finalize(X) Aufruf umgewandelt. Ein Finalize für jede Dimension ist unnötig, da Finalize dies automatisch erledigt.


Andreas Pfau - Mo 30.12.02 12:07
Titel: Danke!
Danke, so wer'd ich's machen!