AW: TStringList x64 nicht nil
Es ist ganz ausdrücklich dokumentiert, dass lokale Variablen NICHT initialisiert sind.
Jedes andere von Dir beobachtete Verhalten ist als rein zufällig zu beurteilen. |
AW: TStringList x64 nicht nil
@Uwe
Welche Delphi Version? 10.3 oder Delphi 2010! Das ist der Unterschied. 32Bit bitte mit Delphi 2010 nicht mit 10.3 |
AW: TStringList x64 nicht nil
Zitat:
|
AW: TStringList x64 nicht nil
Zitat:
Und ja ich werde bei 64Bit in der Zukunft darauf achten alles vorher zu initialisieren.
Delphi-Quellcode:
Ist immer NIL! Beim ersten Aufruf von TestList Egal wie oft ich die Anwendung starte (D2010)
procedure TestList;
var List: TStringList; begin if List = nil then Writeln('List = nil') else Writeln('List <> nil'); end; Wie schon gesagt hat mit Glück nichts zu tun das ist so gegeben. Unter D2010 scheint eine Initialisierung nicht nötig zu sein darauf wollte ich hinaus. Zitat:
|
AW: TStringList x64 nicht nil
Hallo,
ich werfe mal die Optimierung mit rein. mit Optimierung=nil ohne Optimierung<>nil getest unter D2007 und Compiler-Warnung W1036 "Variable ist möglicherweise nicht initialisiert", die in beiden Fällen angezeigt wird. Damit ist doch alles gesagt. |
AW: TStringList x64 nicht nil
Ich finde diese Diskussion ziemlich müßig. Wenn ich nicht sicher weiß, ob in jeder Delphi-Version das erwartete Verhalten auftritt, dann sorge ich selbst für klare Verhältnisse, indem ich lokale Variablen vor dem ersten Lesezugriff grundsätzlich initialisiere. Dann ist es auch wurscht, ob Delphi XE oder Delphi Schießmichtot oder x32 oder x64.
|
AW: TStringList x64 nicht nil
Halo,
müßig ist es nicht. Es lesen ja auch Anfänger mit (hoffentlich). Und man sollte schon alle Compiler-Warnungen beheben. |
AW: TStringList x64 nicht nil
Es wäre interessant zu wissen was OpenFile macht.
Ist das eine Funktion von Delphi oder eine eigene?
Delphi-Quellcode:
Egal wie man es dreht und wendet. Wenn OpenFile eine Instanz der Liste erzeugt, sollte sie sie auch wieder freigeben.
OpenFile(FileName, List);
Ich vertehe gar nicht, wo man daraus so ein großes Problem machen kann. Wenn man bei sowas einfachen einen Fehler erzeugt, ist der Code schlecht und sollte überdacht werden. |
AW: TStringList x64 nicht nil
Hi Zusammen,
ist es nicht so, dass das einfach nur Speicher reserviert wird für die Variable und und dieser Speicher (gerade nach einem Neustart) mit relativ vielen "0"ern belegt ist? So habe ich mir sowas bisher immre erklärt. Auch ohne Initialisierung hast du so oft nil (als Entsprechung des "leeren" Arbeitsspeichers), aber da im reservierten RAM ja nun mal auch Bytemüll drin stehen kann, ist das nicht sicher gestellt. Unabhängig kann ich nur jeden Entwickler darum bitten Variablen immer zu initialisieren. Der Compiler meckert (zumindest in allen Versionen, die ich in Erinnerung hatte) das nicht umsonst an (in der Standardeinstellung). LG Incocnito |
AW: TStringList x64 nicht nil
Zitat:
Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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