---
title: "Rekursion och StackOverflowException"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/146414-rekursion-och-stackoverflowexception"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "jabbalizer"
published: "2006-05-03T22:04:36.000Z"
updated: "2006-05-08T16:39:38.000Z"
replies: 4
views: 454
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/146414-rekursion-och-stackoverflowexception"
---

# Rekursion och StackOverflowException

## #1 — jabbalizer, 2006-05-03T22:04Z

Hej!

Jag undrar om det är möjligt att få StackOverflowException med en korrekt konstruerad rekursion. Alltså genom att anropa sig själv för många gånger helt enkelt (ingen oändlig loop, men var går den gränsen?)

Jag har lite C#-kod som jag kör i VS.NET 2005, och den kraschar när jag ger den större problem, men inte när den löser ett mindre.

Kan man kontrollera hur det är med stacken så att man kan avbryta/minska rekursionen under körning av programmet om stacken skulle ta slut?

Permalänk: https://www.webforum.nu/p/146414

## #2 — Nickemannen, 2006-05-03T22:31Z

Jag googlade runt lite och såg att det var massor som frågade efter just detta, men hittade inga konkreta svar förutom "är du säker att du inte gjort något fel 1 Mb borde räcka" (1 Mb skall tydligen vara standard).

Jag vet inte hur du skall göra kanske du skall använda exceptions för att avbryta men det känns ju inte som en bra lösning heller. Intressant om någon annan hittar svar på detta.

Permalänk: https://www.webforum.nu/p/1809776

## #3 — P, 2006-05-04T08:33Z

1 Mb är ju inte så mycket om man löser stora problem. Du skulle inte kunna skriva om koden till en "while-loop" istället?

Permalänk: https://www.webforum.nu/p/1809847

## #4 — Phorpher, 2006-05-04T09:15Z

För att ändra stackstorleken så kan du köra:

editbin.exe /stack:\<stacksize\> dinbinär.exe

För övrigt så har .NET CLR stöd för något som kallas tailcall som rensar stacken när datat i den inte behövs längre. Tyvärr så genererar inte C#-kompilatorn en sån instruktion: <http://www.cookcomputing.com/blog/archives/000200.html>

Permalänk: https://www.webforum.nu/p/1809868

## #5 — jabbalizer, 2006-05-08T16:39Z

Jag provade att begränsa hur många nivåer rekursionen fick hålla på, och kom fram till att 500 bara löste en liten del av problemet, och förmodligen skulle 4000 inte vara nog. Med de siffrorna kan man ju gissa att den icke-oändliga stacken kan ta slut =)

Permalänk: https://www.webforum.nu/p/1812232

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/146414-rekursion-och-stackoverflowexception
