Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#22

AW: Liegen lokale Klassen auf dem Stack?

  Alt 8. Dez 2017, 08:25
So liegen Beispielsweise alle Items eines VCL TStringgrids auf dem Stack. Die Struktur hinter Cells[col, row] und Objects[col, row] ist eine Objekt vom typ TStringGridStrings.
Das ist unmöglich. Für Daten die auf dem Stack abgelegt werden gibt es nach der aktuell laufenden Prozedur keine Garantie dass diese nicht überschrieben werden.
Eher im Gegenteil: Die Daten werden mit ziemlicher Sicherheit früher oder später überschrieben.
Dazu kommt noch, dass man den Speicher auf dem Stack am Ende einer Prozedur freigeben muss oder man zerschießt sich den Stack. Das ist aus so vielen Gründen nicht möglich und Unsinn.

Lokale Variablen kann man durchaus auf dem Stack ablegen, auch ganze Objekte (wie man dazu steht ist natürlich ein anderes Thema ) aber nichts auf dem Stack überlebt den aktuellen Stackframe.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat