


Où sont stockées les références aux objets lorsqu'ils sont créés sur la pile ou sur le tas ?
Nov 27, 2024 am 01:52 AMCréation d'objet sur la pile ou le tas :
La question se pose : lors de la création d'un objet sur la pile versus le tas, où sont les références à ces objets réellement stockés ?
En C , le stockage des objets est déterminé par son contexte, à savoir son stockage durée :
Object o crée un objet avec :
- Stockage automatique : S'il est déclaré localement au sein d'une fonction, l'objet réside sur la pile.
- Stockage statique : Si déclaré à espace de noms ou portée de fichier, l'objet est placé dans une région mémoire dédiée en dehors de la pile ou du tas.
- Variable membre : Si déclaré comme sous-objet dans un autre objet, il hérite de la durée de stockage de l'objet contenant.
Objet* o crée un pointeur avec fonction automatique stockage.
Les pointeurs sont alloués sur la pile comme n'importe quel autre objet. Leur durée de stockage est déterminée par leur contexte, et non par l'expression d'initialisation.
Par exemple, dans le fragment de code ci-dessous :
1 2 3 4 5 6 7 |
|
- foo.o n'a pas de stockage statique, ni l'un ni l'autre. sur la pile ni sur le tas, car foo lui-même a un stockage statique.
- f.o a un stockage automatique, résidant sur la pile car f a un stockage automatique stockage.
- p->o a un stockage dynamique, sur le tas car *p a un stockage dynamique.
- pf->o et f.o font référence au même objet car pf pointe directement à f.
En résumé, l'emplacement de stockage des objets dépend uniquement de son contexte, tandis que les pointeurs sont toujours alloués sur la pile mais peuvent référencer des objets de stockage divers durées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Gulc: Cibliothèque C construite à partir de zéro

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Utilisation distincte et partage de phrases

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
