C++ NULL and delete

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
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. "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
    1. Contributeur
      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