• [^] # Re: Je hais le C++

    Posté par (Mastodon) . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 4.

    #include <string>
    #include <stdio.h> // (1)
    int main()
    {
     std::string s("++123");
     printf("%s\n", s.substr(2).c_str());
     const char *c1 = s.substr(2).c_str(); // (2)
     printf("%s\n", c1);
     std::string s2 = s.substr(2);
     const char *c2 = s2.c_str();
     printf("%s\n", c2);
    }

    En (1), on ne dit pas stdio.h, mais cstdio.

    En (2), tu joues avec le feu. Tu crées un objet temporaire, tu récupère un pointeur sur les données de cet objet temporaire et après, tu les utilises. C'est une erreur de programmation. KABOOM!