Allocation dynamique en C++

Résolu
Bonjour,

J'aimerais savoir si lorsqu'on alloue en utilisant un pointeur qui pointe déjà sur un emplacement mémoire ,si l'ancien emplacement est désalloué, par exemple si on fait:
int *p ; 
p = new int ; 
*p = 12 ; 
p = new int ; 
delete p ;
Est-ce que l'emplacement qui contient la valeur 12 est désalloué ?

1 réponse

  1. non ( c'est un cas classique de fuite mémoire)
    4
    1. Merci, mais Est-ce qu'a la fin du programme il sera quand même désallouer ?
      0
    2. non.

      c'est pour ça qu'on parle de fuite mémoire : le porgramme ne désalloue rien du tout, et donc la mémoire reste utilisée (selon l'OS ... )
      0
    3. OK, Merci
      0
    4. Contributeur
      Les OS modernes rendent la mémoire à la fin du programme (windows, Linux etc...).
      Mais cela est brutal, le destructeur n'est pas appelé. Si tu lance ton programme avec Valgrind, il te signal alors des erreurs.
      0
    5. connais-tu un bon profiler ?
      0