![]() |
problem mit dynamischem array
hey,
ich habe ein dynamisches array aber ich bekomme wenn ich darauf zugreifen will immer eine fehlermeldung "--------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt P_Ce.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0045B672 in Modul 'P_Ce.exe'. Schreiben von Adresse 00000000' aufgetreten." ich verstehe einfach nicht wieso.. wenn ich nen dynamisches array habe muss ich doch nicht sagen wie groß es sein soll oder ?! wenn ich das hier so mache :
Delphi-Quellcode:
wieso bekomme ich dann an den gekennzeichneten stellen ne fehlermedlung ?
procedure Tastatur_optimieren;
var Haeufigkeit : Array of integer ; i : integer ; Index : IntegeR ; Haeufigkeitsarray : Array of integer ; begin index := 0; For i := 0 to High(Haeufigkeit)-1 do begin If (Haeufigkeit[i] > Haeufigkeit[i-1]) Then begin inc(index); Haeufigkeitsarray[index] := Haeufigkeitsarray[index] + Haeufigkeit[i] ; // HIER FEHLER end else If (Haeufigkeit[i] <= Haeufigkeit[i-1]) Then begin Haeufigkeitsarray[index] := Haeufigkeitsarray[index] + Haeufigkeit[i] ; // HIER FEHLEr end; (also was es machen soll ist wenn meine 2te zahl (haeufigkeit) größer ist als ihrere vorherige zahl dann soll er eine neue "Zeile" im Array nehmen und sie dort hinein sortieren ) ich hab doch einfach ein dynamisches array und will darauf zugreifen oder ?! danke schonmal :D |
Re: problem mit dynamischem array
Wie groß ist Haeufigkeitsarray?
|
Re: problem mit dynamischem array
Da hast du wohl was falsch verstanden: Gerade bei dynamischen Arrays musst du die Größe mittels SetLength zuweisen :wink:
|
Re: problem mit dynamischem array
und was mach ich wenn ich nicht weiß wie groß die größe ist ?
|
Re: problem mit dynamischem array
Du musst ein Dynamisches Array mit SetLength(aarray,größe); initialisieren.
Wenn du ein neues Element hinzufügen möchtest: Setlength(aarray,Length(aaray)+1); Mist, Roter Kasten, aber egal... |
Re: problem mit dynamischem array
Zitat:
|
Re: problem mit dynamischem array
okay
danke :) ich hatte das wohl echt falsch verstanden :) |
Re: problem mit dynamischem array
prüfe einfach mal die Indize in dem gesamten Code
Haeufigkeit[i-1] ... rate mal, auf welchen Index man zugreift, wenn i = 0 ist Haeufigkeitsarray[index] .... wurde schon gesagt ... ist das Array groß genug? |
Re: problem mit dynamischem array
Zitat:
zählt er auch als '0' letzteres war ja das problem ich dachte man müsste dynamische arrays nicht mit setlength definieren ... |
Re: problem mit dynamischem array
wieso denkt man sowas nicht? SetLength ist doch genau dafür da.
Und nur weil es zufällig geht - schlalte mal in den Projektoptionen die Bereichsprüfung an, dann würden dir übrigens alle die hier genannten Index-Fehler angezeigt :angel2: Und 0-1 ist -1 und -1 gibt es in einem dynamischen Array nicht ... vielleicht meinst du aber i+1, wegen dem High-1 :zwinker: Also für das nächste Mal: > Bereichsprüfung beim Debuggen aktivieren > wärend des Debuggens die Indize und Arraygrößen vergleichen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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