• [^] # Re: Comportement indéfini ou incorrect ?

    Posté par . En réponse au journal Compilateur trop intelligent. Évalué à 3.

    Effectivement, le pointeur n'est pas initialisé, enfin... pas toujours

    Pour le programme:

    #include <iostream>
    int main(void) {
     int *p;
     std::cout << p << "\n" ;
     return 0;
    }

    j'obtiens sans optimisation:

    g++ -O0 p.cc && ./a.out
    0x41d7b1

    et avec optimisation:

    g++ -O2 p.cc && ./a.out
    0
    

    Et j'ai un mauvais souvenir d'un autre compilo qui faisait l'inverse, initialisation implicite a zero en mode debug, et initialisation "aléatoire" en mode release... c'était surprenant.