Article View: pl.comp.lang.c
Article #545Re: rekurencja a pamiec ?
From: Marek Kotowski
Date: Mon, 05 Jan 1998 09:00
Date: Mon, 05 Jan 1998 09:00
25 lines
1580 bytes
1580 bytes
Micha³ Suski wrote: > > Piszê w³a¶nie program korzystaj±cy z rekurencji, ale niestety po 125 > zag³êbieniach wszystko pada, najprawdopodobniej z braku pamiêci. > Najprawdopodobniej, bo komputer siê wiesza, a raczej emm286 stwierdza jaki¶ > b³±d i go zawiesza. Jak sprawdzaæ ilo¶æ dostêpnej pamiêci, dodam, ¿e > coreleft() nie pomaga, bo stwierdza, ¿e jest jej ca³a masa. Z góry > dziêkujê. > -- Prawdopodobnie chodzi o pamiec alokowana na stosie. Kazde wywolanie rekurencyjne powoduje alokowanie nowej pamieci na stosie na adres powrotu, argumenty przekazane w wywolaniu funkcji, zmienne lokalne. Rozwiazaniem moze byc zwiekszenie ilosci pamieci przeznaczonej na stos (linker) lub jesli wywolan funkcji rekurencyjnej ma byc bardzo duzo - stworzenie w pamieci statycznej buforow do przechowywania zmiennych lokalnych (trzeba oczywiscie zaprojektowac mechanizm korzystania z tych buforow). Jesli i to nie pomoze, trzeba przejsc na wersje iteracyjna obliczen. HTH. Marek Kotowski
Technical Details
Message-ID:
<34B0A14B.2B27@imm.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mailReferences:
<01bd189a$8c52aaa0$LocalHost@suseu>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail From: Marek Kotowski <mkot@imm.org.pl> Newsgroups: pl.comp.lang.c Subject: Re: rekurencja a pamiec ? Date: Mon, 05 Jan 1998 10:00:59 +0100 Organization: Instytut Maszyn Matematycznych Lines: 25 Message-ID: <34B0A14B.2B27@imm.org.pl> References: <01bd189a$8c52aaa0$LocalHost@suseu> NNTP-Posting-Host: 148.81.238.53 Mime-Version: 1.0 X-Mailer: Mozilla 3.01Gold (Win95; I) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit