![]() |
Re: Stack Overflow trotz iterativen Algorithmus
Moin Assarbad,
Zitat:
|
Re: Stack Overflow trotz iterativen Algorithmus
:oops: ... :lol:
Mein Fehler, sorry. |
Re: Stack Overflow trotz iterativen Algorithmus
Zitat:
|
Re: Stack Overflow trotz iterativen Algorithmus
Jupp ... ich ersetze gleich Iteration duch Rekursion ... war wie gesagt mein Fehler. Hätte mir ja nur den Code näher anschauen müssen ... irgendwie war bei mir noch so im Hinterkopf, es ginge um Dateisuche :-/
|
Re: Stack Overflow trotz iterativen Algorithmus
Hallo zusammen,
also es war nach meiner Änderung im Quelltext doch nicht behoben. Es lag letztendlich daran, dass ich die search Methode einfach so deklariert habe. Jetzt habe ich sie als Methode vom Object declariert, und der Stackoverflow kommt nicht mehr. Jetzt kommt aber eine neue Exceptionn, dass ich zu wenig Arbeitsspeicher hätte. Das ist aber Quark ! Denn wenn ich folgende Funktion starte, wird meine Exe 399 MB groß !! ohne Probleme. Aber bei meiner Berechnung nur 52 MB .. trotzdem kommt diese dämliche Fehlermeldung ? Weiss nicht mehr weiter ...
Delphi-Quellcode:
procedure TForm5.Button58Click(Sender: TObject);
var ar : array of integer; i : longint; begin i := 100000000; setlength(ar,i); for i := 0 to length(ar) -1 do ar[i] := 5; showmessage('warte'); end; |
Re: Stack Overflow trotz iterativen Algorithmus
sizeof(Integer) = 4
4 * 100000000 ~~ 400MB Außerdem würde man das nie so machen, sondern immer den Speicher direkt DWORD-weise überschreiben ... Zumindest wird deine Variante sehr langsam. Vielleicht sagst du einfach nochmal, was du eigentlich vorhast. Hier sollte man wohl stärker optimieren :-/ |
Re: Stack Overflow trotz iterativen Algorithmus
Zitat:
Wie meinst Du das mit DWORD Weise ? Ich bekomm die Fehlermeldung nicht weg .. es tritt immer die Fehlermeldung auf, dass ich zu wenig Arbeitsspeicher hätte .. versteh das nicht |
Re: Stack Overflow trotz iterativen Algorithmus
Hi,
habt vielen Dank für Eure Hilfe, das Problem hat sich jetzt erledigt, hab von arrays auf TList umgestellt. Da funktioniert das wunderbar und geht auch viel viel schneller .. und die Daten sind auch viel viel kleiner alles. (wenn man in Tlist list.insert(i) benutzt und somit nur pointer umkopiert, geht das schneller als wenn man grosse Datenstrukturen in einem Array umkopieren muss) Irgendwie muss Delphi arrays mehrfach anlegen (bei procedure Übergaben oder was weiss ich) ist jedenfalls irgendwie nicht normal ... aber egal .. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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