AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit dynamischem array

Ein Thema von gangs-taas · begonnen am 14. Sep 2009 · letzter Beitrag vom 15. Sep 2009
Antwort Antwort
Seite 1 von 3  1 23      
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

problem mit dynamischem array

  Alt 14. Sep 2009, 16:47
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:
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;
wieso bekomme ich dann an den gekennzeichneten stellen ne fehlermedlung ?

(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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:50
Wie groß ist Haeufigkeitsarray?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:50
Da hast du wohl was falsch verstanden: Gerade bei dynamischen Arrays musst du die Größe mittels SetLength zuweisen
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#4

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:51
und was mach ich wenn ich nicht weiß wie groß die größe ist ?
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#5

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:52
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...
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:53
Zitat von gangs-taas:
und was mach ich wenn ich nicht weiß wie groß die größe ist ?
Wenn du es nicht weißt, wer dann? Irgendwie musst du das Array doch mit Daten füllen?!
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#7

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:54
okay
danke

ich hatte das wohl echt falsch verstanden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.081 Beiträge
 
Delphi 12 Athens
 
#8

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 16:55
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?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#9

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 17:05
Zitat von himitsu:
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?
ersteres geht
zählt er auch als '0'

letzteres war ja das problem ich dachte man müsste dynamische arrays nicht mit setlength definieren ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.081 Beiträge
 
Delphi 12 Athens
 
#10

Re: problem mit dynamischem array

  Alt 14. Sep 2009, 17:14
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

Und 0-1 ist -1 und -1 gibt es in einem dynamischen Array nicht ... vielleicht meinst du aber i+1, wegen dem High-1



Also für das nächste Mal:
> Bereichsprüfung beim Debuggen aktivieren
> wärend des Debuggens die Indize und Arraygrößen vergleichen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz