wie Sie eine StackOverflowException gezielt auslösen, ohne Rekursion zu verwenden?

7

Mir wurde gesagt, dass jede Methode einen Stack von der Größe 1mb hat. Also nahm ich an, dass die Initialisierung von 256 Integer-Werten in einer Methode eine StackOverflowException verursacht. Ich habe das im Code versucht, aber keine Ausnahme wurde geworfen.

So, wie eine StackOverflowException absichtlich ausgelöst wird, ohne Rekursion zu verwenden?

    
CuiPengFei 10.10.2011, 08:25
quelle

4 Antworten

5

Ich werde eine andere Methode hinzufügen: -)

%Vor%

Nun ist diese Struktur 128kb :-) Wenn Sie eine lokale Variable (einer Methode, die nicht yield oder async verwendet) vom Typ FixedBufferExample deklarieren, sollte sie 128kb des Stacks verwenden. Sie können Ihren Stack ziemlich schnell verbrauchen.

    
xanatos 10.10.2011, 08:43
quelle
19

verwenden

%Vor%     
Yahia 10.10.2011 08:27
quelle
7

stackalloc ist wahrscheinlich der einfachste Weg (vorausgesetzt, Sie möchten, dass die Laufzeit den Fehler und nicht Sie selbst auslöst):

%Vor%     
Marc Gravell 10.10.2011 08:29
quelle
-2

Rufen Sie Ihr Eigentum in Ihrem Eigentum an (es ist Rekursion, aber es ist so gewöhnlich, dass ich es erwähnen musste):

%Vor%     
Amittai Shapira 10.10.2011 08:38
quelle

Tags und Links