Page 1 sur 1
Stack Overflow
Publié : dim. 30/juil./2006 18:39
par Twix
J'ai rencontré une erreur 'Stack Overflow' qui veut dire, je crois, Pile remplie ou un truc dans le genre. La pile, je crois que c'est une sorte de registre du processeur. Mais je n'en sais pas plus. D'où vient cette erreur ?
ça à fait ramer Pure, puis, quand j'ai ouvert la fenetre d'Appels Memoire, ça l'a fait completement planter, obligé de cétéairellaltsupprimer, mon gros ventilo de processeur s'est mis en plein régime en faisant autant de bruit q'un aspirateur.
Publié : dim. 30/juil./2006 19:16
par Flype
çà arrive si une procedure s'appelle elle meme (appel récursif) sur une profondeur trop importante.
ou dans ce cas par exemple.
ici on créé une variable trop volumineuse dans une procedure pour qu'elle rentre dans la stack.
Sur mon PC, avec #TAILLE > 14000 octets çà plante.
Code : Tout sélectionner
#TAILLE = 12000
;#TAILLE = 30000
Structure TEST
entier.b[#TAILLE]
EndStructure
Procedure.s test()
Protected resultat.s
Protected variable.TEST
If variable
resultat = "ok"
Else
resultat = "échec"
EndIf
ProcedureReturn resultat
EndProcedure
Debug "début"
Debug test()
Debug "fin"
Publié : dim. 30/juil./2006 20:07
par Twix
Il s'agit bien d'une procedure, qui plus est récursive
Merci ! Vé essayer de trouver combien fois on peut s'apeller soi-même.
Publié : dim. 30/juil./2006 20:17
par Flype
attention dans ton enquete,
la procedure peut s'appeler à l'infini, c'est pas le probleme.
le probleme, c'est la profondeur des appels.
fonction()
---fonction()
------fonction()
---------fonction()
------------fonction()
---------------fonction()
------------------fonction() ...
