#include #include int myMain() { char* t = static_cast(malloc(10)); char c = t[0]; // Gardez les lignes 29, 30 et 31 en commentaire pour observer les fuites mémoire. // NB : Dr Memory ne détecte la fuite liée à la string C++ que si vous avez généré votre // code avec Propriété de configuration C/C++ > Génération de code > Bibliothèque runtime // à /MTd (au lieu de /MDd par défaut) // En les décommentant, vous pourrez expérimenter que Visual Studio fait une analyse de // vos accès mémoire et qu'il signale une erreur si vous mettez l'option /MTd à la place de /MDd // (cf. ci-dessous) : // - Générez le code (Propriété de configuration C/C++ > Génération de code > // Bibliothèque runtime est à /MDd par défaut). // - Exécutez-le en mode debug : Windows fait un bip, mais il ne se passe // rien au niveau de la fenêtre qui s'est ouverte. // - Arrêtez le débogage. // - Propriété de configuration C/C++ > Génération de code > // Bibliothèque runtime et mettre /MTd au lieu de /MDd // - Exécutez votre programme en mode debug : cette fois, vous avez une fenêtre // "HEAP CORRUPTION detected" qui s'affiche. En cliquant sur "Recommencer", vous // arrivez à l'endroit de l'erreur. // Vidual Studio vous affiche 2 warnings par rapport aux accès glauques qui sont faits sur // le tableau t. // Ces warnings sont obtenus grâce aux options sélectionnées dans Propriété de // configuration C/C++ > Génération de code > Vérifications de base à l'exécution // qui est à / RTCsu //t[10] = 'a'; //free(t); //t[5] = 'b'; std::string* s = new std::string(); std::cout << "Hello World!\n"; return 0; } int main() { return myMain(); }