Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Array "reseten"


[r2d2] - Mi 27.08.03 22:33
Titel: Array "reseten"
Ist es möglich, allen Elementen eines Arrays den Wert nil zuzuordnen, ohne den Wert jedes Segments einzeln neu zu setzten?


Anonymous - Mi 27.08.03 22:47

keine ahnung ob das geht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
 olength: integer;
begin
 olength := length(array);
 setlength(array0);
 setlength(array, olength);
end;


[EDIT]
wenn überhaupt nur bei dynamischen arrays.

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


UC-Chewie - Do 28.08.03 00:27

Bei statischen Arrays ist das recht einfach:


Delphi-Quelltext
1:
ZeroMemory(@DasArray, Sizeof(DasArray));                    


Motzi - Do 28.08.03 09:55

Die Methode von Chewie funzt auch bei dyn. Arrays:

Delphi-Quelltext
1:
2:
ZeroMemory(@szArray[0], // die Adresse des ersten Elements übergeben
Length(szArray) * SizeOf(szArray[0])); // die Größe des Arrays ist die Länge mal die Größe eines einzelnen Elements


Taurin - Fr 29.08.03 16:27

Du solltest dabei aber aufpassen, dass dir nicht irgendwie Speicher
verloren geht, falls die Pointer in deinem Array vorher auf was gezeigt
haben.