Stack (pop-push)

Stack (pop-push)

de Andres Gaston Gimenez Medina -
Número de respuestas: 2
Mi duda es, por qué cuando se hace pop hay que incrementar el puntero del stack y para push se decrementa, y no al revés, ya que pop quita un elemento y push agrega.

Agradezco si alguien puede explicarme. Perdonen que pregunte acá pero en los foros de cada tema ya casi nadie entra y tal vez nadie vea la pregunta.

Saludos.
En respuesta a Andres Gaston Gimenez Medina

Re: Stack (pop-push)

de Luis Michelena -
Historicamente se ha mantenido separado el stack del código y el heap(donde se guardan las variables globales y la memoria dinámica) de los programas . por eso se pone el código(que es fijo) en la parte más baja de la memoria, luego el heap(que puede crecer y lo hace hacia las direcciones mayores) y finalmente el stack, que se pone en el límite superior del espacio de direcciones del código creciendo hacia las direcciones menores, de esta forma todo el espacio libre puede ser utilizado por el (código y el heap) o el stack en forma indistinta; sin que sea necesario especificar una separación de antemano.