AGB  ·  Datenschutz  ·  Impressum  







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

Default Werte in Array?

Ein Thema von aaaaaaaaaa_10 · begonnen am 30. Jul 2009 · letzter Beitrag vom 30. Jul 2009
Antwort Antwort
Seite 2 von 2     12   
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Default Werte in Array?

  Alt 30. Jul 2009, 13:58
Zitat von aaaaaaaaaa_10:
Nur zur Info. Es ist alles mit 0 gefüllt. Danke
Weil (wie meistens) der dafür reservierte Speicher bereits 0... stehen hatte oder weil delphi das array mit 0 initialisiert hat.

Wie mkinzler schreibt, sollte man prüfen (sofern es dringend nötig ist, das dort 0 drin steht), ob der Zustand zufällig oder kontrolliert ist.

Aber deswegen hattest Du ja gefragt, es wusste bisher nur noch keiner sicher wurde von der Realität überholt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:00
Zitat:
Besser wäre es gewesen, da wäre nix drin gewesen. Kann man die Default Werte alle löschen?
Mit was? Irgendwas muss ja drinstehen.
Markus Kinzler
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#13

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:00
Danke Worker, das ist doch mal ne vernünftige Übersicht
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#14

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:02
ich mache vergleiche mit den arraywerten u.a. minimum und wenn da bereits eine 0 drin steht, dann sind ja meine werte immer größer und werden nie in das array übernommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:04
Dann musst du die Felder halt manuell mit dem Maximum des Datentyps bestücken.
BTW. bitte verwende die Edit-Funktion, denn Pushen mögen wir hier nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#16

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:05
Oh entschuldige bitte. War ein Versehen. Werde mich bessern

Edit: Ganz sicher !
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:06
Zitat von mkinzler:
Das hatte ich vermutet, aber wie gesagt darf man sich darauf nicht verlassen!
Das wirft eine Frage auf:
Warum sollte man sich nicht darauf verlassen? Beim initialisieren eines Objektes wie auch beim initialisieren eines dynamischen Arrays wird der Befehl fillchar (x,y,0) bereits von Delphi ausgeführt. Wenn man nun zwingend die 0 im Array benötigt, sollte man das fillchar dann noch ein zweites Mal ausführen?

Ja,
weil sicher ist sicher und irgendwann könnte ja CodeGear auf die Idee kommen und den Quellcode von DynArraySetLength zu ändern und das Fillchar rausnehmen.


Nein,
denn warum sollte man das jemals ändern und außerdem steht es ja in der Doku/Hilfe, dass der Inhalt 0 gesetzt wird. Sowas sind nur Performanceverluste, die nicht sein müssen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Default Werte in Array?

  Alt 30. Jul 2009, 14:35
Sagen wir es mal so, die Array-Felder sind "nie" vorbelegt.

als globale Variable oder in einem Objekt:
der globale Variablen-Speicher und der Speicher von Objekten wird beim erstellen geNullt,
also wenn da zufällig ein statisches Array seine Elemente dort drin hat, dann ist es demnach auch automatisch indirekt mit 0en vorbelegt.

der Stack (lokale Variablen):
wird nicht initialisiert/geNullt

Speicher vom Speichermanager (via GetMem, z.B. der Inhalt von dynamischen Arrays):
wird ebenfalls nicht initialisiert/geNullt


Ausnahmen:
initialisierungspflichtige Typen, wie z.B. Strings, dynamische Arrays (der Array-Zeiger und nicht dessen Inhalt) oder Interfaces werden zu Initialisierung mit "nil" gefüllt.

und daraus kann man sich jetzt alle möglichen Szenarien basteln.


Grund ist, daß bei den "Ausnahmen" zur Speicherbehandlung ein definierter Wert gegeben sein muß, denn sonst wissen die Verwaltungsfunktionen nicht, ob sie einen alten Inhalt eventuell freigeben müssen.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:06 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