precision sur delete d'un pointeur
bonjour,
avec les lectures pour ma formation, je lis:
Citation:
après utilisation, la zone mémoire définie à l'aide du mot clé new doit être libérée pour être rendu au système. Pour cela appelez le mot clé delete sur le pointeur.
de mon coté je test ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
int main()
{
using namespace std;
int variableLocale = 5;
int * pLocal = &variableLocale;
int * pTas = new int;
*pTas = 7;
cout << "VariableLocale : " << variableLocale << endl;
cout << "*pLocal : " << *pLocal << endl;
cout << "*pTas : " << *pTas << " => " << pTas << endl;
delete pTas;
pTas = new int;
*pTas = 9;
cout << "*pTas : " << *pTas << " => " << pTas << endl;
delete pTas;
cout << "*pTas : " << *pTas << " => " << pTas << endl;
return 0;
} |
delete supprime bien la mémoire réservé pour l'objet, mais le pointeur en lui même il existe toujours a l'adresse de stockage.
la dernière sortie de flux : *pTas : 6164688 => 0x5e1058
est-il possible de le supprimé ou simplement de le rendre null avec *pPointeur = 0;
merci