Un tableau est du point de vue des programmeurs, fixe en place et en taille, vous savez où vous en êtes et où tout est. Vous avez accès à tout cela.
Avec une pile, vous vous asseyez à une extrémité, mais vous n'avez aucune idée de sa taille ou de la distance que vous pouvez parcourir en toute sécurité. Votre accès à celui-ci est limité au montant que vous avez alloué, vous ne savez souvent même pas si lors de l'allocation du montant que vous vouliez si vous venez de claquer dans le tas ou l'espace de programme. Votre vue d'une pile est un petit tableau que vous vous êtes alloué, la taille que vous vouliez, que vous avez le contrôle et que vous pouvez voir. Votre portion n'est pas différente d'un tableau. La différence réside dans le fait que votre tableau est collé à une extrémité d'un autre tableau pour des raisons d'argument et de terminologie, dont vous n'avez aucune visibilité, aucune idée de la taille ou de la taille, et vous ne pouvez pas le toucher sans causer de dommages. Un tableau, sauf global, est souvent implémenté sur la pile de toute façon, de sorte que le tableau et la pile partagent le même espace pendant la durée de cette fonction.
Si vous voulez entrer dans le côté matériel, alors il est spécifique au processeur bien sûr, mais généralement le tableau est basé sur un point de départ / adresse connu, la taille est connue par le compilateur / programmeur et les adresses y sont calculées, utilisant parfois l'adressage de décalage de registre (charge une valeur à partir de l'adresse définie par cette valeur de registre de base plus cette valeur de registre de décalage, de même lors de la compilation, il pourrait s'agir d'un décalage immédiat pas nécessairement basé sur un registre, dépend du processeur bien sûr) qui, en assemblage, est très ressemble à l'accès à un tableau en code de haut niveau. De même avec la pile, si disponible, vous pouvez utiliser un registre ou un adressage d'offset immédiat, souvent même s'il utilise un registre spécial, soit le pointeur de pile lui-même, soit un registre réservé par le compilateur / programmeur à utiliser pour accéder au cadre de pile pour cela. une fonction. Et pour certains processeurs, des fonctions spéciales d'accès à la pile sont utilisées et / ou requises pour accéder à la pile. Vous avez des instructions push et pop, mais elles ne sont pas utilisées aussi souvent que vous le pensez et ne s'appliquent pas vraiment à cette question. Pour certains processeurs, push et pop sont des alias pour des instructions qui peuvent être utilisées avec n'importe quel registre, n'importe où, pas seulement le pointeur de pile sur la pile, ce qui supprime davantage le push et pop d'être lié à cette question.