Allocation dynamique en C++

Résolu/Fermé
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 - Modifié par twiiiix le 21/06/2010 à 18:41
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 - 23 juin 2010 à 14:33
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

Rctll Messages postés 499 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 30 juin 2010 1 408
21 juin 2010 à 19:46
non ( c'est un cas classique de fuite mémoire)
4
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
21 juin 2010 à 23:27
Merci, mais Est-ce qu'a la fin du programme il sera quand même désallouer ?
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
21 juin 2010 à 23:34
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
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
21 juin 2010 à 23:56
OK, Merci
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
22 juin 2010 à 08:26
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
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
22 juin 2010 à 10:31
connais-tu un bon profiler ?
0