View Full Version : Cicli
Salve ragazzi,
una domanda bovina sui cicli. i vari while, do e for, sono procedure ricorsive?
no
in quel caso si parla di iterazione, la ricorsione è un'altra cosa
no
in quel caso si parla di iterazione, la ricorsione è un'altra cosa
Ah ok ,quindi sono procedure iterative. Grazie. Un'altra cosa: uno stack overflow, che è tipico errore di procedure ricorsive, può avvenire anche per funzioni iterative?
VegetaSSJ5
12-10-2005, 22:12
scusate ma lo stack overflow è l'errore che avviene quando una funzione ricorsiva viene eseguita "infinite" volte vero?
repne scasb
13-10-2005, 10:01
scusate ma lo stack overflow è l'errore che avviene quando una funzione ricorsiva viene eseguita "infinite" volte vero?
Non e' necessario che venga eseguita infinite volte, ma un numero di volte sufficienti per "consumare" la memoria, allocata dal sistema, ad uso dello stack. Consumato lo stack, e' possibile (in mancanza di meccanismi di protezione sia software che hardware), una sovrascrittura di zone di memoria che il sistema non "ritiene" ad uso dello stack (codice, dati...), con risultati inpredicibili.
Anche un sovraccarico dello stack puo' generare una stack overflow (100 bytes di stack e funzione che utilizza 104 bytes di stack), come una funzione non ricorsiva mal disegnata (ad ogni esecuzione perde 4 byte di stack, dopo 'n' chiamate (n=dimensione stack/4), andra anch'essa in overflow, ed in questo caso in modo subdolamente erratico).
VegetaSSJ5
13-10-2005, 11:19
Non e' necessario che venga eseguita infinite volte, ma un numero di volte sufficienti per "consumare" la memoria, allocata dal sistema, ad uso dello stack.
si infatti avevo scritto infinite tra virgolette. ;)
per il resto sempre precisa come al solito... :)
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.