Bonjour a tous
je suis entrains de me remettre au C++, j'ai encore de bon reste mais j'ai perdu mes reflexs pour comprendre d'ou viennent les erreurs.
En voici une que je comprend pas ^^:
En sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Point *p3 = new Point(3,4); cout << "ADRESS OF P3: " << &p3 << " value: " << p3->getX() << endl ; delete p3; //not forget to free pointed memory cout << "ADRESS OF P3: " << &p3 << " value: " << p3->getX() << endl ;
Ce que je comprend pas c'est que apres le delete de p3 je puisses encor acceder au valeur pointer par p3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int Point::getX() ADRESS OF P3: 0xbffff738 value: 3 Point::~Point() int Point::getX() ADRESS OF P3: 0xbffff738 value: 3
Quelqu'un peut m'expliquer?
Aussi, autre question getsion de memoire, si je creer une variable
Point p = new point(1,2); je ne peux pas faire delete p.
Est ce qu'il existe un moyen pour liberer la memoire quand je veus ou est ce que j'attend la fin du bloc?
cordialement
jason







Répondre avec citation





) qui va devoir te charger de détruire explicitement l'objet alloué dynamiquement (en C++ : new <=> allocation dynamique), via un delete. Tout ce que fait un delete, c'est détruire l'objet, i.e appeler son constructeur. Ca ne modifie pas l'adresse à laquelle pointait le pointeur, ou quoique ce soit.



Partager