Mit jelent ez a C# hibaüzenet? (többi lent)
milyen hiba van a programban ha a következő hibaüzenet jelentkezik:
An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
mit jelent ez a hibaüzenet?
Leginkább szerintem akkor fordul ez elő, ha a rekurzív függvény(ed) nem lép ki, hanem végtelen mélységig szándékozna hívni magát - és ennek a hívási verem (call stack) mérete határt szab -> ilyenkor hal meg a program túlcsordulás kivétellel.
Más oka is lehet, de most nem jut eszembe ilyen.
Nézd meg, hogy a programodban hol keletkezik a hiba, milyen műveletnél.
> ilyenkor hal meg a program túlcsordulás kivétellel.
akarom mondani:
ilyenkor hal meg a program verem túlcsordulás kivétellel.
igen. valószínüleg ez a hiba a programomban de a rekurzióm nem végtelen csak nagyon sokszor fut le.
ezt hogy lehet kikerülni?
Verem méret növelése ("c# raise stack size") keresésre kijött pár ötlet:
A Thread-es tűnik a legegyszerűbbnek. Tehát csinálsz egy szálat, aminek megmondod, mekkora veremméretet adsz (stackSize). Aztán a nagyon mély rekurziódat abban a szálban futtatod le. :)
"A Thread-es tűnik a legegyszerűbbnek. Tehát csinálsz egy szálat, aminek megmondod, mekkora veremméretet adsz (stackSize). Aztán a nagyon mély rekurziódat abban a szálban futtatod le. :)"
erre tudnál írni egy példa programot?
Esetleg megpróbálhatod átalakítani a rekurziót iterációra:
Kapcsolódó 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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!