Dans l'intérêt de cette question, je représenterai la mémoire sous la forme d'un simple tableau d'octets, et je parlerai de la mémoire heap car il est possible de l'allouer dynamiquement. Supposons que j'instancie une classe et que je crée un objet sur le tas où de la mémoire a déjà été allouée. Ensuite, après avoir créé l'objet, j'alloue un peu plus de mémoire (peut-être en instanciant une autre classe). Cela implique l'utilisation des mots-clés new
et delete
, bien sûr.Que se passe-t-il exactement lors de la suppression de my_object; est exécuté? Toute autre mémoire est-elle décalée vers la gauche par sizeof (MyClass)?
La mémoire ressemble maintenant à ceci:
... byte byte my_object ... my_object byte byte ...
Qu'est-ce qui se passe exactement quand delete my_object;
est exécuté? Toute autre mémoire est-elle décalée vers la gauche de sizeof(MyClass)
? Si oui, par qui? L'OS? Alors que se passe-t-il quand il n'y a pas de système d'exploitation pour fournir de la mémoire virtuelle?
Merci pour le montage Robert, c'est plus clair maintenant. – corazza