C++ NULL and delete

Fermé
fix - 30 janv. 2007 à 15:46
 Manu - 9 juil. 2007 à 19:27
bonjour.
c'est quoi la difference entre NULL et delete pour detruire un objet.
a vrai dire:
supposons que j'ai un champ chaine, defini de la maniere suivante:
char * chaine;
c'est quoi la difference entre
chaine = NULL;
et
delete [] chaine;
merci d'avance

2 réponses

"détruire" signifie libérer la mémoire qui sera donc réutilisable. Si on ne libère pas la mémoire avec "delete", il y a une fuite mémoire et le programme prend de plus en plus de place.
3
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
30 janv. 2007 à 16:32
salut.
Null met le pointeur à une valeur nul, tandis que delete detruit.
Exemple :
tu as deux pointeur de type T : a et b.
T *a1=a;
T *b1=b;
b=NULL;
delete a;
lALORS : L'objet pointer par a et par a1 seront détruit.
b ne pointera plus nulle par, mais l'objet pointé par b est toujours présent et accessible par b1.
NULL ne détrui pas un objet, il mes le pointeur à 0.
En fait normalement, NULL est défini comme suit :
#define NULL 0
1