| Andreas Pfau hat folgendes geschrieben: |
TILT! Access Violation. Warum? Ein dynamischer Array ist ein dynamisch zugewiesener Speicherblock, und keine Variable!!!
Lösung: Auf das erste Element zugreifen (Hat die selbe Adresse): |
Soweit richtig.. aber:
| Zitat: |
Quelltext 1: 2: 3: 4:
| var B: Array of Integer; begin SetLength(B,1000); FillChar(B[0],Length(B),123); | |
Das wird nicht gehen.. überleg mal: du hast einen Array of Integer. Ein Integer ist 4 Bytes groß, und der array enthält 1000 Elemente. Die Größe beträgt daher 4*1000 Bytes und nicht nur 1000 (Length(array))
FillChar kann dazu verwendet werden, um jedem Byte eines Speicherblocks denselben Wert zuzuweisen (für 0 gibts sogar eine eigene Funktion: ZeroMemoy). Aber in diesem Fall funktioniert das nicht, da bei einem Integer mit dem Wert 123 nicht alle Bytes gleich sind.
In diesem Fall wäre also eine for-schleife angebracht!