[Visual Studio 2005] : un problème incroyable
Bonjour à tous
Voilà le code posant un problème :
Code:
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;
} |
Configuration :
* 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 :mrgreen:) ?
Merci à tous !