Niveau de pile

Résolu
cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 - 20 janv. 2005 à 09:29
cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 - 20 janv. 2005 à 10:56
J'ai un programme ou j'ai besoin qu'une sub appelle une sub qui
rappelle une sub..... un certain grand nombre de fois. je ne me perd
pas les pedales, il y a toujours un moment ou ca s'arrete et on
retourne a la case depart.

Au bout d'un moment j'ai un message du genre "Stack Full" et j'ai
compris que VB a une limite dans le nombre de retour possibles.

Il ne me faudrait que 30 a 40% en plus pour que mon programme marche a tout les coups.

J'envisage de gerer tout ca moi meme, ne serais-ce que pour le plaisir
de programmer, mais y a-t-il un moyen de prevoir et modifier la taille
de la pile concernee?

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
20 janv. 2005 à 10:47
Les fonctions récursives peuvent toujours être remplacées par des
fonctions linéaires en utilisant au moins une pile en parallèle pour
stocker les données. Bien que ce soit compliqué dans pas mal de cas,
cela évite le problème de pile trop petite.



Pour continuer en récursif et éviter les problèmes de piles, évite de
passer trop de paramètres à ta fonction récursive (ou passe les par
références et non par valeur si possible), et évite de déclarer trop de
variables locales dans ta fonction (préfère un tableau global à la
limite, qui sera stocké sur le tas et non plus dans la pile).

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
3
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
20 janv. 2005 à 09:58
Un programme qui fait une erreur de piles est un programme mal programmé. Docn, il va falloir revoir la facon de résoudre ton pb!
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
20 janv. 2005 à 09:59
Un programme qui fait une erreur de piles est un programme mal programmé. Docn, il va falloir revoir la facon de résoudre ton pb!
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
20 janv. 2005 à 10:00
Un programme qui fait une erreur de piles est un programme mal programmé. Docn, il va falloir revoir la facon de résoudre ton pb!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
20 janv. 2005 à 10:38
ça arrive souvent quand on fait du récursif, la solution c'est de se limiter en nombre de boucles, en nombre de variables locales, ou de trouver une solution non récursive.

Daniel
0
cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 3
20 janv. 2005 à 10:56
Merci gobilot et dark Sidious, pas tres constructif Tilois.



J'avais pas besoins de beaucoup de pile en plus.



j'avai deja une idee en tete mais je suis un peu feneant.
0
Rejoignez-nous