AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Sauber Programmieren: Variablen zurücksetzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Sauber Programmieren: Variablen zurücksetzen?

Ein Thema von Rakshasa · begonnen am 11. Jul 2005 · letzter Beitrag vom 17. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#1

Sauber Programmieren: Variablen zurücksetzen?

  Alt 11. Jul 2005, 21:47
Hallo!!

Ist es eigentlich notwendig, die verwendeten Variablen eines begin...end am Schluss manuell zurückzusetzen, also z.B. so:

Delphi-Quellcode:
Procedure MeineProcedure;
var
s: String;
i: integer;
myarray: Array of TString;
begin

// code code code code


s := '';
i := -1;
SetLength(MyArray, 0);

end;
Oder macht Delphi das ausreichend von alleine?

[edit=alcaeus]code- durch delphi-Tags ersetzt. Bitte in Zukunft die richtigen Tags verwenden, Danke. Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#2

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 11. Jul 2005, 21:57
variablen innerhalb einer prozedur werden auf den stack abgelegt wenns nicht gerade ein string ist
aber da macht delphi das auch noch selber

einzigst bei komponenten die du erzeugst, die solltest du mit .free wieder freigeben
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 11. Jul 2005, 22:00
Zitat:
die solltest du mit .free wieder freigeben
Vielleicht besser wäre es:FreeAndNil(MyObj);
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 11. Jul 2005, 22:07
sollte man ein dynamisches array nicht auch besser wieder auf die länge null setzen (und eventuell noch finalize'n)?
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 11. Jul 2005, 22:16
Das da geht in Richtung lokale/globale Variablen ! Woher soll denn das arme Programm wissen, was noch passiert ? Die Variablen müssen also nicht "zurückgesetzt" werden, sondern nur richtig initialisiet werden beim Programmstart.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 12. Jul 2005, 00:03
Zitat von Hansa:
Die Variablen müssen also nicht "zurückgesetzt" werden, sondern nur richtig initialisiet werden beim Programmstart.
naja das kann ich jetzt so nicht unterschreiben. auf jeden fall muss man bei lokalen variablen (also in proceduren etc.) alles an speicher was man sich selber holt auch wieder selber freigeben, also Create/Free, New/Dispose, Initialize/Finalize, GetMem/FreeMem etc., weil ansonsten speicerlecks entstehen würden, da ja nach verlassen der procedure die zugriffsadresse, die in einer lokalen variable gespeichert ist, futsch wäre.

aber "einfache" lokale variablen (wie z.b. Integer, Chars, statische Arrays etc) muss man nicht wieder auf einen standardwert setzen, da die variablen eh im stack liegen, der nach verlassen der procedure eh nichtmehr erreichbar ist.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 12. Jul 2005, 00:16
Zitat von BlackJack:
...naja das kann ich jetzt so nicht unterschreiben..
Doch.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 12. Jul 2005, 00:17
Zitat:
aber "einfache" lokale variablen (wie z.b. Integer, Chars, statische Arrays etc) muss man nicht wieder auf einen standardwert setzen, da die variablen eh im stack liegen, der nach verlassen der procedure eh nichtmehr erreichbar ist.
Ich glaube, das sind auch die Typen, auf die Hansas Post bezogen war.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 12. Jul 2005, 00:21
naja ein "array of TString" gehört da ja nicht unbedingt dazu, und das muss man sogar in zweifacher hinsicht freigeben - erst die TStrings einzeln, und dann noch das array auf Länge null setzen.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#10

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 12. Jul 2005, 07:40
Zitat von BlackJack:
naja ein "array of TString" gehört da ja nicht unbedingt dazu
Die TSTringList hingegen schon, und wer ein Array anstelle von der nutzt ist gerade selber schuld.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  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 05:47 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