Je suppose que non, mais je ne suis pas sûr. Je ne sais pas si d'autres variables peuvent occuper la même place dans la pile.
Réponses
Trop de publicités?Non. Les variables locales d'une fonction ne sont pas toujours à la même adresse.
Considérons une fonction récursive. Si les variables locales étaient censées se trouver au même endroit, toutes leurs valeurs devraient être copiées à chaque fois que vous entrez et sortez de la récursivité.
La façon normale de procéder est que chaque appel de fonction a un "bloc" sur la pile. Si vous appelez la même fonction deux fois de suite, les adresses des variables locales seront probablement les mêmes. Si vous l'appelez de manière récursive, le deuxième appel se fera dans une zone différente de la pile et les adresses des variables locales seront donc différentes.
Le compilateur génère du code pour attribuer des adresses mémoire sur la base d'une adresse "pointeur de pile" + décalage. Ainsi, l'adresse physique réelle de chaque local variera à chaque invocation de la fonction. Le décalage peut très bien être le même à chaque fois parce que la logique de génération du code du compilateur sera la même. L'adresse du pointeur de pile sera probablement différente en fonction de ce qui sera exécuté avant la prochaine invocation de la fonction.