S'il vous plaît regarder ce codeSuppression d'un pointeur vers une variable automatique
int i = 10; //line 1
int *p = &i; //line 2
delete p; //line 3
cout << "*p = " << *p << ", i = " << i << endl; //line 4
i = 20; //line 5
cout << "*p = " << *p << ", i = " << i << endl; //line 6
*p = 30; //line 7
cout << "*p = " << *p << ", i = " << i << endl; //line 8
Quel est le résultat de ce code? Surtout de la ligne 3, 5 et 7? Est-ce qu'ils invoquent un comportement indéfini? Quel serait le résultat?
EDIT: J'ai essayé de l'exécuter en utilisant g ++, et il compile et fonctionne bien! J'utilise MinGW sous Windows 7.
Que dit Standard dans ce contexte?
avez-vous essayé de l'exécuter? peut être vous pouvez ajouter le résultat de votre course et nous pouvons en discuter alors? – Nim
Pourquoi ne pas compiler et voir? Je reçois un segfault ... – Kricket
'*** erreur pour l'objet 0x7fff5fbff5ec: pointeur en cours de libération n'a pas été affecté *** définir un point d'arrêt dans malloc_error_break à déboguer» lors de l'exécution ... compilé avec g ++ 4.1 dans MacOS X. Par ma définition de «courir» ne fonctionne pas bien. –