AGB  ·  Datenschutz  ·  Impressum  







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

Schrott im Array

Ein Thema von yss14 · begonnen am 29. Mai 2012 · letzter Beitrag vom 30. Mai 2012
Antwort Antwort
Seite 1 von 2  1 2      
yss14

Registriert seit: 27. Mai 2012
9 Beiträge
 
#1

Schrott im Array

  Alt 29. Mai 2012, 20:48
Guten Abend
Ich hab ein Array, welches Werte von anderen Arrays Werte bekommt. Welche hängt allerdings vom Ablauf des Programms ab. Das Array selber haben ich vorher mit 0en gefühlt. Nun kommt es aber manchmal vor, dass an Stellen im Array Schrott steht, irgendwelche wild zusammengewürfelten Zahlen wie '453435356'. In der Schule hat uns der Lehrer erzählt, dass es manche Programmiersprachen gibt, in denen man vorsichtshalber jedes Array vorher befühlen sollte, da sonst andere Werte vom Arbeitsspeicher drin stehen. Ist das bei Delphi auch so?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Schrott im Array

  Alt 29. Mai 2012, 20:50
Du initialisierst es doch schon.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
yss14

Registriert seit: 27. Mai 2012
9 Beiträge
 
#3

AW: Schrott im Array

  Alt 29. Mai 2012, 20:52
Ja, aber während dem Ablauf des Programms bekommt es andere Werte von mind. 10 anderen Arrays, die vielleicht nicht initialisiert sind, d.h. der Schrott wird dann in das Array geschrieben, falls es bei Delphi so ist. Z.b. bei Java kann kein Schrott aus dem Ram im Array stehen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Schrott im Array

  Alt 29. Mai 2012, 20:54
Wie ist das Array definiert?
Wie werden die Werte zugewiesen?
Wie wurden die anderen Arrays initialsiert/befüllt?
Wie ........

Es hängt vom Typen ab.
- Strings (außer ShortString), Interfaces, dynamische Arrays (nur der Arrayzeiger selber, aber nicht unbedingt der Inhalt) und Variants werden immer initialsiert,
also alle Typen welche über eine automatische/dynamische Speicherverwaltung verfügen.

Es hängt vom Ort ab.
- globale Variablen werden immer initialisiert
- Objekt-Felder werden immer initialisiert
- lokale Variablen werden NICHT initialisiert (Ausnahmen siehe Typen)
- Inhalte von dynamischen Arrays werden NICHT initialisiert (Ausnahmen siehe Typen)
- Inhalt statischer Arrays (einzelne Felder siehe Typen und Orte)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (29. Mai 2012 um 20:56 Uhr)
  Mit Zitat antworten Zitat
yss14

Registriert seit: 27. Mai 2012
9 Beiträge
 
#5

AW: Schrott im Array

  Alt 29. Mai 2012, 20:59
OK, ich wunder mich halt nur, warum in 90% der Fälle der richtige Werte (eine einstelle Integer-Zahl) und dann plötzlich so nen Müll an der Stelle steht. Es ist ein Integer-Array, die Werte werden aber aus String-Arrays zugewiesen und über StrToInt(''+MeinArray[0][1]) zugewiesen...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Schrott im Array

  Alt 29. Mai 2012, 21:02
Und warum schreibst du nicht initialisierte Elemente von anderen Arrays in das Array?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
yss14

Registriert seit: 27. Mai 2012
9 Beiträge
 
#7

AW: Schrott im Array

  Alt 29. Mai 2012, 21:05
Tsja, da hast du recht, da muss ich mich jetzt wohl mal ran machen und den gesamten Quellcode nach den Quellen des Mülls absuchen und die ganzen Arrays rausfischen und initialisieren. Ich wollte mal aus Interesse fragen, nicht das ich mich jetzt hinsetze und alles suche und danach teste und es dann umsonst war
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Schrott im Array

  Alt 29. Mai 2012, 21:05
Und schalte mal probehalber die Bereichsprüfung an.
(in den Projektoptionen oder via Compilerschalter)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
yss14

Registriert seit: 27. Mai 2012
9 Beiträge
 
#9

AW: Schrott im Array

  Alt 29. Mai 2012, 21:22
OK, ich habe jetzt alle Arrays, die ich verwende, initialisiert. Und die Bereichsprüfung angeschaltet. Der "Fehler" tritt immer noch auf, allerdings ist mir aufgefallen, dass es immer der gleiche Code ist: 4428132
Ich werden mir wohl morgen mal alles ausgeben lassen müssen und dann schauen, woher es kommt. Btw gibt es in Delphi 7 die Möglichkeit, sich während der Laufzeit den Inhalt eines Arrays anzuschauen, ohne ihn jedes mal auszugeben. Das würde die Arbeit sehr erleichtern...
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Schrott im Array

  Alt 29. Mai 2012, 21:28
Und schalte mal probehalber die Bereichsprüfung an.
Die sollte immer an sein, nicht nur probehalber.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:41 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