Kezdőoldal » Számítástechnika » Programozás » Veremtúlcsordulás? Miért?

Veremtúlcsordulás? Miért?

Figyelt kérdés

Üdv! Készítettem egy aknakereső programot: [link] Minden szépen és jól működött benne, mindaddig, amíg bele nem raktam a void floodfill fv.-t. Annak az lenne a feladata, hogy az aknakeresőben ismert funkciót, az aknamentes terület automatikus felderítését biztosítsa, de valami miatt azon a részen veremtúlcsordulás van (rekurziónál ismert probléma) és ettől az egész program bedöglik. Hogy lehetne megoldani a problémát?


Eléggé sürgős lenne...Köszi előre is!



2012. dec. 2. 00:58
 1/7 anonim ***** válasza:

A tünet alapján az biztos, hogy a rekurziónál a kilépési feltétel valahol nem stimmel.


Anélkül, hogy hosszasan elemezném és átlátnám a C kódodat csak annyit tanácsolnék, hogy irass ki fájlba vagy a konzolra jó sok debug információt, hogy lásd, milyen paraméterekkel hívódott meg a floodfill(). (Esetleg soronkénti végrehajtással debuggolás..)

2012. dec. 2. 01:12
Hasznos számodra ez a válasz?
 2/7 iostream ***** válasza:
100%

Nincs megállási feltétele a rekurziódnak. Soha nem áll le. Rakj be az elejére egy olyasmit, hogy

if (tomb[xl][yl] == atomb[xl][yl]+'0')

{ return; }

2012. dec. 2. 01:25
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Ez így kicsit sok most nekem is hajnali 1kor, de megerősítem amit első mondott, garantáltan az egyik feltételnél lesz a hiba.

Ess neki pár kiirtással, hogy megtaláld, hol indexeled félre a tömböt.

(Vagy jobb lenne egy rendes debuggerrel nekimenni, de a kiíratás gyorsabb lesz.)

2012. dec. 2. 01:27
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
Éééés valóban.
2012. dec. 2. 01:28
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Huha, nem gondoltam volna hogy ennyi választ kapok így éjjel :D Köszi.

Esetleg utolsó válaszoló, ha rájöttél a problémára, meg tudnád osztani ? :D Próbáltam debuggolni, mindig a 115 és 116-os sornál ír segfaultot, viszont ha átrendezem a feltételeket, úgyis a 115-116-os sor lesz hibás. Kiiratni próbáltam, de nem sokmindenre jöttem rá...:/

2012. dec. 2. 02:23
 6/7 anonim ***** válasza:
iostream már megírta, hogy mi a gond.
2012. dec. 2. 02:31
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
És igen. Működik. Köszönöm a segítséget!
2012. dec. 2. 02:58

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!