Maison > Article > développement back-end > Où résident les objets en mémoire : pile, tas ou ailleurs ?
Création d'objets pile ou tas
La question soulève des inquiétudes concernant la création d'objets sur la pile ou le tas. Bien que le code fourni (Object o :) implique la création d'objets sur la pile, il ne mentionne pas explicitement la pile ou le tas. Clarifions cette distinction.
En C , l'emplacement d'un objet en mémoire est déterminé par sa durée de stockage, et non par la pile ou le tas spécifiquement. Il existe quatre durées de stockage : automatique, dynamique, statique et thread local. Le stockage automatique est principalement utilisé pour les variables locales sur la pile d'appels, tandis que le stockage dynamique est utilisé pour les objets alloués sur le tas avec « nouveau ».
Création d'objet
Contexte et durée de stockage
La durée de stockage d'un objet est déterminée par son contexte. Par exemple :
Pointeurs et stockage
Les pointeurs eux-mêmes sont des objets et suivent les mêmes règles de stockage. Leur stockage est déterminé par leur contexte et non par le type vers lequel ils pointent. Le type vers lequel ils pointent détermine la durée de stockage de l'objet pointé.
Dans l'ensemble, comprendre la durée de stockage est crucial pour comprendre la gestion de la mémoire en C . Les objets peuvent résider dans différentes régions de mémoire en fonction de leur durée de stockage et de leur contexte.
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!