Articles of stack overflow

Comment prédire la profondeur d’appel maximale d’une méthode récursive?

Pour estimer la profondeur maximale d’appel qu’une méthode récursive peut atteindre avec une quantité de mémoire donnée, quelle est la formule (approximative) pour calculer la mémoire utilisée avant qu’une erreur de dépassement de capacité de la stack se produise? Modifier: Beaucoup ont répondu avec “ça dépend”, ce qui est raisonnable, alors supprimons certaines des variables […]

Stackoverflow fait de la boxe en C #

J’ai ces deux morceaux de code en C #: Premier class Program { static Stack S = new Stack(); static int Foo(int n) { if (n == 0) return 0; S.Push(0); S.Push(1); … S.Push(999); return Foo( n-1 ); } } Seconde class Program { static Stack S = new Stack(); static int Foo(int n) { […]

Sortie confuse de la récursion infinie dans try-catch

Considérez le code suivant. public class Action { private static int i=1; public static void main(Ssortingng[] args) { try{ System.out.println(i); i++; main(args); }catch (StackOverflowError e){ System.out.println(i); i++; main(args); } } } Je reçois une valeur allant jusqu’à 4338 correctement. Après avoir StackOverflowError sortie StackOverflowError vous comme suit. 4336 4337 4338 // up to this point […]

Erreur de dépassement de stack Java – Comment augmenter la taille de la stack dans Eclipse?

Je lance un programme que j’ai écrit en Java dans Eclipse. Le programme a un niveau de récursivité très élevé pour les très grandes entrées. Pour les entrées plus petites, le programme fonctionne correctement, mais lorsque des entrées importantes sont données, j’obtiens l’erreur suivante: Exception in thread “main” java.lang.StackOverflowError Cela peut-il être résolu en augmentant […]

Pourquoi .NET se comporte-t-il si mal lorsque StackOverflowException est lancé?

Je suis conscient que StackOverflowExceptions dans .NET ne peut pas être intercepté, supprimer leur processus et ne pas avoir de trace de stack. Ceci est officiellement documenté sur MSDN . Cependant, je me demande quelles sont les raisons techniques (ou autres) du comportement. Tout ce que MSDN dit est: Dans les versions antérieures du .NET […]

gson.toJson () lance StackOverflowError

Je voudrais générer une chaîne JSON à partir de mon object: Gson gson = new Gson(); Ssortingng json = gson.toJson(item); Chaque fois que j’essaie de faire cela, j’obtiens cette erreur: 14:46:40,236 ERROR [[BomItemToJSON]] Servlet.service() for servlet BomItemToJSON threw exception java.lang.StackOverflowError at com.google.gson.stream.JsonWriter.ssortingng(JsonWriter.java:473) at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:347) at com.google.gson.stream.JsonWriter.value(JsonWriter.java:440) at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:235) at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:220) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89) at […]

F # vs OCaml: débordement de stack

J’ai récemment trouvé une présentation sur F # pour les programmeurs Python , et après l’avoir regardée, j’ai décidé de mettre en œuvre une solution au “casse-tête de fourmi” par moi-même. Il y a une fourmi qui peut circuler sur une grid plane. La fourmi peut se déplacer d’un espace à la fois gauche, droite, […]

Node.js – La taille maximale de la stack d’appels est dépassée

Lorsque j’exécute mon code, Node.js lance une exception “RangeError: Maximum call stack size exceeded” provoquée par trop d’appels de récursivité. J’ai essayé d’augmenter la taille de stack Node.js par sudo node –stack-size=16000 app , mais Node.js planter sans aucun message d’erreur. Quand je le relance sans sudo, alors Node.js imprime ‘Segmentation fault: 11’ . Est-il […]

Pourquoi cette méthode entraîne-t-elle une boucle infinie?

Un de mes collègues est venu à moi avec une question sur cette méthode qui se traduit par une boucle infinie. Le code actuel est un peu trop compliqué pour être publié ici, mais le problème se résume essentiellement à ceci: private IEnumerable GoNuts(IEnumerable items) { items = items.Select(item => items.First(i => i == item)); […]

Comment puis-je prévenir et / ou gérer une exception StackOverflowException?

Je voudrais soit empêcher ou gérer une StackOverflowException que je reçois d’un appel à la méthode XslComstackdTransform.Transform dans un éditeur Xsl que j’écris. Le problème semble être que l’utilisateur peut écrire un script Xsl qui est infiniment récursif, et il explose simplement l’appel à la méthode Transform. (C’est-à-dire que le problème n’est pas simplement l’erreur […]