Bonjour à tous
Voilà le code posant un problème :
Configuration :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class A { public: ~A() {cout << "destroy" << endl;} void print() {cout << "print" << endl;} }; int main (int argc, char** argv) { A* a = new A; a->print(); delete a; a = 0; a->print(); // crash ? nenni ! affiche bel et bien "print" // avec : a = 0x00000000 !!! return 0; }
* jeu de caractères MBCS
* pas d'optimisations
Et oui, c'est incroyable, mais j'arrive à déréférencer un pointeur nul !!! Du moins, j'y arrive parfaitement sur trois machines différentes (XP). Quelqu'un peut-il m'expliquer ce qu'il se passe ? Comment y remédier (hormis en changeant de compilateur ) ?
Merci à tous !
Partager