![]() |
Fehlermeldung bei nem Array
Hi,
ich programmier grade an nem Mathe Trainingsprogramm und bekomm immer ne Fehlermeldung wenn ich ein Array festlege. Aber warum hab ich bis jetzt noch nicht rausgefunden... und zwar:
Code:
rz4 ist hierbei "array of integer".
setlength(rz1,2);
rz1[1] := 1; rz1[2] := 2; setlength(rz2,2); rz2[1] := 1; rz2[3] := 3; setlength(rz3,2); rz3[2] := 2; rz3[3] := 3; setlength(rz4,3); rz4[1] := 1; rz4[2] := 2; rz4[3] := 3; {<--------- PROBLEM} das ganze soll anschließend mit
Code:
weiterverarbeitet werden.
rechen3 := randomfrom(rz4);
und die fehlermeldung ist Zitat:
hat jemand ne idee wo der fehler liegen könnte? die anderen 'setlength' anweisungen schluckt er auf jeden fall einwandfrei. vielen dank! gruß speedy |
Re: Fehlermeldung bei nem Array
Du musst immer von null an zählen. Ein dynamisches Array beginnt immer mit dem index 0. wenn dein array eine "länge" von 2 hat, dann zählt der index von 0 bis 1, also array[0] und array[1]. array[2] führt zu einem fehler. schalte am besten untern den compiler options die bereichsüberprüfung ein. projekt->options->reiter compiler, haken bei bereichsprüfung setzen.
mfg |
Re: Fehlermeldung bei nem Array
hmm... ich hatte mal kurzzeitig bei der fehlersuche den index von rz4 so:
Code:
das programm ist aber leider trotzdem an der stelle ausgestiegen... :?
setlength(rz4,3);
rz4[0] := 1; rz4[1] := 2; rz4[2] := 3; gruß speedy |
Re: Fehlermeldung bei nem Array
Delphi-Quellcode:
setlength(rz1,2);
rz1[1] := 1; rz1[2] := 2; // <-- du zerstören Speicher setlength(rz2,2); rz2[1] := 1; rz2[3] := 3; // <-- du zerstören Speicher setlength(rz3,2); rz3[2] := 2; rz3[3] := 3; // <-- du zerstören Speicher setlength(rz4,3); rz4[1] := 1; rz4[2] := 2; rz4[3] := 3; // <-- du zerstören Speicher
Delphi-Quellcode:
setlength(rz1,2);
rz1[0] := 1; rz1[1] := 2; setlength(rz2,2); rz2[0] := 1; rz2[1] := 3; setlength(rz3,2); rz3[0] := 2; rz3[1] := 3; setlength(rz4,3); rz4[0] := 1; rz4[1] := 2; rz4[2] := 3; |
Re: Fehlermeldung bei nem Array
Salut,
wie Neo schon gesagt hat, liegt der Fehler vermutlich schon bei den Zuweisungen vorher, die auf vollkommen undefinierte Speicherbereiche zugreifen. Das sich das erst bei der Belegung von rz4 äussert, hat nicht viel zu sagen. Grüße Blechwolf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz