AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi array of TImage ... length liefert einen ganz falschen Wert
Thema durchsuchen
Ansicht
Themen-Optionen

array of TImage ... length liefert einen ganz falschen Wert

Ein Thema von faeX · begonnen am 4. Apr 2008 · letzter Beitrag vom 4. Apr 2008
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: array of TImage ... length liefert einen ganz falschen W

  Alt 4. Apr 2008, 22:58
Erstmal: Hast du die Bereichsprüfung eingeschaltet bei dem Projekt? Wenn nein, mach dies in den Projektoptionen->Compiler und erstelle das gesamte Projekt neu. Dann führe die Methode nochmal aus.

Zu deinem Code:
Delphi-Quellcode:

procedure c(anum, art : integer);
var
  anzahl : integer;
begin
  anzahl := length(a[anum].wunden);
  setLength(A[anum].c,anzahl + 1);
  A[anum].c[anzahl-1] := TImage.create(frmB);
  A[anum].c[anzahl-1].parent := frmB;

  // Text unwichtig

end;
- Wieso ermittelst du die Länge von Wunden um dann c auf diese Länge + 1 zu setzen?
- Eintrag Anzahl-1 ist nicht richtige Index, sondern Anzahl ist der letzte Index. Du hast ja auf Anzahl + 1 die Größe gesetzt.

Kleines Rechenbeispiel:
-> Anzahl wird mit 0 ermittelt
-> Du setzt c auf Anzahl + 1, also eine Länge von 1
-> Du greifst auf -1 zu, da du Anzahl - 1 nimmst

Mit der Bereichsprüfung hätte er dir das zur Laufzeit um die Ohren gehauen!

Du zerschiesst dir jetzt den Speicher, das kann unvorhersehbare Folgen haben, da du wild fremden Speicher editierst (fremd im Sinne der nicht eigentlich anvisierten Variablen).
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:19 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