Una matriz es desde la perspectiva de los programadores, fijada en su lugar y tamaño, sabes dónde estás y dónde está todo. Tienes acceso a todo eso.
Con una pila, te sientas en un extremo pero no tienes idea de su tamaño ni de qué tan lejos puedes llegar con seguridad. Su acceso a él está limitado a la cantidad que ha asignado, a menudo ni siquiera sabe si al asignar la cantidad que deseaba si acaba de estrellarse en el montón o el espacio del programa. Su vista de una pila es una pequeña matriz que se ha asignado usted mismo, el tamaño que desea, tiene control y puede ver. Su porción no es diferente a una matriz. La diferencia radica en que su matriz se agrega a un extremo de otra matriz por razones de argumento y terminología, de la que no tiene visibilidad, ni idea de cuán grande o pequeño, y no puede tocarla sin causar daño. Una matriz, a menos que sea global, a menudo se implementa en la pila de todos modos, por lo que la matriz y la pila comparten el mismo espacio durante la duración de esa función.
Si desea entrar en el lado del hardware, entonces es específico del procesador, por supuesto, pero en general la matriz se basa en un punto / dirección de inicio conocido, el compilador / programador conoce el tamaño y las direcciones se calculan en él, a veces utilizando el direccionamiento de desplazamiento de registro (cargue un valor de la dirección definida por este valor de registro base más este valor de registro de desplazamiento, del mismo modo cuando se compila podría ser un desplazamiento inmediato no necesariamente basado en el registro, depende del procesador, por supuesto) que en conjunto se asemeja a acceder a una matriz en código de alto nivel. Del mismo modo con la pila, si está disponible, puede usar el registro o el direccionamiento de desplazamiento inmediato, a menudo aunque use un registro especial, ya sea el puntero de la pila en sí, o un registro reservado por el compilador / programador que se utilizará para acceder al marco de la pila para ese función. Y para algunos procesadores se utilizan y / o se requieren funciones especiales de acceso a la pila para acceder a la pila. Tiene instrucciones push y pop, pero no se usan con tanta frecuencia como podría pensar y realmente no se aplican a esta pregunta. Para algunos procesadores, push y pop son alias de instrucciones que se pueden utilizar con cualquier registro, en cualquier lugar, no solo con el puntero de la pila, eliminando aún más la inserción y el pop de estar relacionados con esta pregunta.