Red de conocimiento informático - Espacio del host - Mi programa tiene un desbordamiento de pila, ¿qué debo hacer?

Mi programa tiene un desbordamiento de pila, ¿qué debo hacer?

Aunque no he visto tu código fuente con mis propios ojos, según tu descripción, supongo que utilizas llamadas recursivas a subfunciones en el código fuente de tu programa. Esto se debe a que los programas que llaman con frecuencia a subfunciones de forma recursiva producirán operaciones frecuentes de presión de pila y salida de pila.

La mayor ventaja de llamar a subfunciones de forma recursiva es que los programas son más fáciles de escribir y leer, pero también tiene sus desventajas. Es decir: si la cantidad de datos a procesar es muy grande, inevitablemente se producirá un desbordamiento de la pila. En este caso, el algoritmo recursivo debe modificarse a un algoritmo no recursivo.

En cuanto al método de modificación específico, se ha explicado en los libros de texto de estructura de datos actuales. Pero después de dicha modificación, la legibilidad del programa no recursivo inevitablemente no será tan legible como la de la llamada recursiva.

Por ejemplo, la llamada a subfunción recursiva más clásica es calcular el factorial de un número entero. Cuando los números enteros a calcular son pequeños, resulta un gran placer programar utilizando subfunciones recursivas. Pero cuando los números enteros a calcular son grandes y muy grandes, si aún usa el algoritmo recursivo, inevitablemente provocará un desbordamiento de la pila. En este momento, es necesario modificar el algoritmo recursivo a un algoritmo no recursivo.