Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Mini programa - Fallo recursivo

Estas en el tema de Mini programa - Fallo recursivo en el foro de C/C++ en Foros del Web. Tengo una función recursiva con un for dentro de llamaas recursivas. El programa hace muchísimas llamadas recursivas y acaba desbordandose "algo", porque cuando hago que ...
  #1 (permalink)  
Antiguo 14/01/2011, 03:37
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
Mini programa - Fallo recursivo

Tengo una función recursiva con un for dentro de llamaas recursivas. El programa hace muchísimas llamadas recursivas y acaba desbordandose "algo", porque cuando hago que no ejecute tanto, todo funciona perfectamente.

El programa es gigante, pero básicamente el esquema de dicha función es:

main()
{

valor = función(fgdfgdfgdfgdf)

}



int funcion(dfgdfgdfgdf)
{
_____fdfdfdf
_____dffdfdfdf
_____if (gfgdfg)
_____{
_________for (i=0;i<var;i++)
_________{
______________var_final = var_final + funcion(ghfghgfhgfhgfh);
______________if (fgfgfgf) {return(va_final);}
_________}
_____}

_____
return(var_final);
}




No se si es porque se deja mucha información en pila, o porque la vuelta de la recurividad esta mal (muy posible).
El caso es que con pocas llamadas todo funciona perfectamente.

Necesito ayuda.
Gracias por vuestra atención.
  #2 (permalink)  
Antiguo 14/01/2011, 06:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Mini programa - Fallo recursivo

Hola, no deberías iniciar tantos temas para hablar de lo mismo....

Con un código tan escueto, no creo que podamos ayudarte.
  #3 (permalink)  
Antiguo 14/01/2011, 11:47
Avatar de Munire  
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Mini programa - Fallo recursivo

la recursividad solo es aconsejada cuando se hacen pocas llamadas, debido a que esta tecnica consume muchos recursos.

Etiquetas: fallo, mini, programa, recursivo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.