Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - EAccessViolation bei Zugriff auf dyn. Array
JungerIslaender - So 17.01.10 21:48
Titel: EAccessViolation bei Zugriff auf dyn. Array
Warumm bekomme ich bei folgendem Quellcode eine Exception der Klasse EAccessViolation:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| SetLength(Knoten_Array,Listbox1.Items.Count,8); for i:= 0 to Listbox1.Items.Count do begin for j:= 0 to 7 do begin Knoten_Array[i,j]:=0; end; end; |
Moderiert von
Narses: Titel erweitert.
Hidden - So 17.01.10 22:01
Hi :)
Auch i müsste bis Length - 1 laufen, also greifst du für i = Listbox1.Items.Count auf Speicher außerhalb des Arrays zu. :zwinker:
mfG,
PS: Solche Fehler hat man, wenn man eigentlich ins Bett müsste =)
PS2: Der Titel gibt mehr Fragen als Antworten :)
jaenicke - So 17.01.10 22:04
Weil du ein Array mit den Indizes 0..Listbox1.Items.Count - 1 erstellst, aber auf den Index Listbox1.Items.Count zugreifst wie
Hidden schon geschrieben hat wie ich gerade sehe. Deshalb solltest du besser nicht zwei Sachen vermischen:
Wenn du auf das Array zugreifst, warum benutzt du dann für die Größenangabe andere Werte? Wenn du die Werte auch aus dem Array nimmst, kann so etwas nicht passieren... ;-)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| SetLength(KnotenArray, Listbox1.Items.Count, 8); for i := Low(KnotenArray) to High(KnotenArray) do begin for j := Low(KnotenArray[i]) to High(KnotenArray[i]) do begin KnotenArray[i, j] := 0; end; end; |
JungerIslaender - So 17.01.10 22:23
Hidden hat folgendes geschrieben : |
Hi :)
PS: Solche Fehler hat man, wenn man eigentlich ins Bett müsste =)
|
Jo das muss ich, hab als du es gesagt hast auch direkt den Fehler gesehen... :oops: :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!