Mon explication, qui vaut ce qu'elle vaut 
Dans ton premier exemple, ça marche, bien content pour toi mais c'est clairement mal. Ton int doit être écrit quelque part dans la mémoire ou ça ne dérange pas ton système d'exploitation. Chez moi, ptr était à 7efde000.
En revanche, en mettant un int supplémentaire, tu décales l'emplacement de ton pointeur ptr en mémoire, et pas de chance cette fois ptr se retrouve sur une adresse bidon sur laquelle tu ne pourras pas écrire (Chez moi ptr était à 0xf ...)
Je pense pas que l'explication aille beaucoup plus loin que ça. En se renseignant sur le fonctionnement de la gestion d'un mémoire par un programme tu auras peut être une explication plus concrète (Par exemple je me demande si une adresse 7efde000 ne correspond pas à une adresse proche de la pile, enfin bref) mais tout ce que tu dois expliquer à tes étudiants, c'est que utiliser un pointeur non initialisé, c'est le mal absolu et irréfutable 
Message édité par WiiDS le 15-01-2011 à 14:25:08
---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010