AGB  ·  Datenschutz  ·  Impressum  







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

Stack-Überlauf

Ein Thema von Array · begonnen am 9. Mär 2011 · letzter Beitrag vom 10. Mär 2011
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Stack-Überlauf

  Alt 9. Mär 2011, 17:31
mist zu langsam
[OT] HaHa! [/OT]
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Stack-Überlauf

  Alt 9. Mär 2011, 21:47
ich will auch noch

Sagen wir es mal anders, oder man schaue mal in die OH.
Delphi-Referenz durchsuchenTForm.OnClose Delphi-Referenz durchsuchenTForm.OnCloseQuery



OnClose wird aufgerufen, wenn die Form endgültig geschlossen wird

OnCloseQuery wird davor aufgerufen, bevor überhaupt feststeht ob wirklich geschlossen werden soll



PS: hat sich mal jemand den Action-Parameter angesehn?
Vorallem das caMinimize (Delphi-Referenz durchsuchenTCloseAction) ... ich glaub da kann shnell mal was passieren, was ihr eigentlich nicht wollt
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Mär 2011 um 21:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Stack-Überlauf

  Alt 9. Mär 2011, 21:55
Allgemein sollte man bei Stacküberläufen gucken, ob man rekursiver programmiert hat als man vorhatte
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Stack-Überlauf

  Alt 9. Mär 2011, 22:26
Allgemein sollte man bei Stacküberläufen gucken, ob man rekursiver programmiert hat als man vorhatte
Das ist zwar oftmals wirklich der Grund, aaaaaaaber

Delphi-Quellcode:
procedure TForm5.FormCreate(Sender: TObject);
var
  a: array[0..12345678] of Byte;
begin
  if a[0] = 0 then
    // nix (keine Lust)
end;
Und nun such mal den rekursiven Aufruf
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Stack-Überlauf

  Alt 9. Mär 2011, 23:13
Unter Lazarus läuft das bei mir ohne Probleme (bei 22345678 dann nicht mehr ).
Aber so etwas passiert einem ja seltener aus Versehen.
Zusammen mit (gewollter) Rekursion könnte bestimmt schon bei kleineren Variablen interessant werden.

Damit das Problem hier nicht so kommentarlos rumsteht:
Eine Lösung wäre dann, das Array auf dem Heap anzulegen oder dafür zu sorgen, dass der Compiler das macht (zB. dynamisches Array).
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG ( 9. Mär 2011 um 23:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Stack-Überlauf

  Alt 10. Mär 2011, 09:51
Gut, dann hat Lazarus standardmäßig wohl einfach einen größeren Stack. (wobei man den ja sowieso anpassen könnte)

Nja, es ging mehr darum, daß durch viele/große lokale Variablen der Stack auch schonmal so volllaufen kann, ohne eine Endlosrekursion programmieren zu müssen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:38 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