AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi nicht initialisierte Variable erzeugt keine Warnung/Hinweis
Thema durchsuchen
Ansicht
Themen-Optionen

nicht initialisierte Variable erzeugt keine Warnung/Hinweis

Ein Thema von AJ_Oldendorf · begonnen am 13. Nov 2019 · letzter Beitrag vom 10. Jun 2020
 
Incocnito

Registriert seit: 28. Nov 2016
229 Beiträge
 
#11

AW: nicht initialisierte Variable erzeugt keine Warnung/Hinweis

  Alt 13. Nov 2019, 15:25
Das FreeAndNil sehe ich gar nicht mal als Problem.
Ich könnte ja auch Funktionen nutzen um Variablen zu initialisieren:
Delphi-Quellcode:
Procedure Testa(var test : TStringList);
Begin
  test := TStringList.Create();
  test.Add('Testzeile');
End;

Procedure Testb();
var
  slTemp : TStringList;
Begin
  Testa(slTemp); // alles wunderbar
  ShowMessage(slTemp.Text);
  slTemp.Free();
End;
Das Problem ist eher, dass er bei "sl.Text = '';" direkt in der ersten Zeile,
nicht meckert, obwohl "sl" definitiv nicht initialisiert ist.
Wird das wohl durch "try-except" wegoptimiert?

Und lokale Variablen muss man trotzdem freigeben.
Arrays braucht man nicht mit "SetLength(x, 0);" freigeben,
aber sonst muss alles, was erzeugt wird auch freigegeben werden.
Ahja: Interfaces haben einen Referenzzähler, so dass das noch
wieder anders läuft.
Auch zur Laufzeit erstellte Komponenten muss man nicht unbedingt freigeben,
weil sie ja einem Parent zugeordnet werden und freigegeben werden, wenn
das Parent freigegeben wird.
Mehr Außnahmen fallen mir gerade nicht ein, ansonsten empfehle ich MadExcept
zum Testen auf Speicherlecks.

MfG Incocnito
  Mit Zitat antworten Zitat
 


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 14:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz