18/01/2011, 08:13
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses Puntos: 73 | |
Respuesta: Liberar memoria Cuando llamas a una función, los parámetros que le pasas los mete en la pila. Las variables locales de la función también te las crea en la pila. Ese espacio solamente se libera cuando salgas de la función. Si tienes problemas por desbordamiento de la pila (que es lo que ocurre si te pasas con la recursividad), dado que dices que los parámetros los pasas por referencia, no creo que el problema venga de ahí (tampoco sé cuál es el nivel de recursividad al que llegas, pero las referencias ocupan poca memoria).
Mira a ver qué variables tienes como locales a la función. Si, por ejemplo, tienes un array de 1000 enteros declarado de forma explícita, en cada entrada a la función te va a ocupar 4000 bytes en la pila, y eso sí puede provocarte el problema. Si, como te ha indicado Margarito04, muestras el código (al menos, la función recursiva), podría ser un poco más preciso. |