Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec assert

Sujet résolu
    28 octobre 2018 à 20:47:56

    Bonjour dans le cours de gbdivers, il y a un code avec un assert.

    Quand j'essaye de le reproduire, ça ne marche pas.

    #include "pch.h"
    #include <iostream>
    #include <cassert>
    #include <limits>
    
    int main()
    {
    	const int a{ std::numeric_limits<int>::max() };
    	assert(i < (i + 1));
    }

    Voilà mon code.

    Quand je compile ça me mets le message d'erreur suivant :

    error C2065: 'i' : identificateur non déclaré

    Merci d'avance !

    EDIT : c'est à ce chapitre.

    EDIT 2 : effectivement, il fallait mettre un i à la place du a. 

    -
    Edité par RomainBricout 28 octobre 2018 à 21:13:35

    • Partager sur Facebook
    • Partager sur Twitter

    C++ à la vie à la mort. (Le python c'est bien aussi) || Rejoignez : https://discord.gg/9r3zqgg

      28 octobre 2018 à 21:07:46

      À mon avis, il faut remplacer i par a (ou l'inverse). Tu peux mettre un lien sur la page concernée ?

      • Partager sur Facebook
      • Partager sur Twitter
        28 octobre 2018 à 21:35:19

        Il y a un UB ici. Cet assert n'a pas de sens.
        • Partager sur Facebook
        • Partager sur Twitter
        C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
          28 octobre 2018 à 21:38:37

          Salut, c'est quoi un UB ?? Moi je ne fais que tester les codes du cours :-°
          • Partager sur Facebook
          • Partager sur Twitter

          C++ à la vie à la mort. (Le python c'est bien aussi) || Rejoignez : https://discord.gg/9r3zqgg

            28 octobre 2018 à 23:17:54

            en fait, le code exacte du cours, c'est :

            assert(i < (i+1));                                // probleme

            Le commentaire est important :)

            Et la suite :

            Dans ce cas, le comportement n'est pas définie dans la norme C++, 
            mais généralement, l'assertion sera fausse.

            J'ai corrigé l'erreur sur la variable.

            RomainBricout a écrit:

            EDIT 2 : effectivement, il fallait mettre un i à la place du a. 

            En fait, à ce niveau du cours, je m'attends à ce que le lecteur puisse corriger lui même ce genre d'erreur. C'est a dire qu'il puisse comprendre le message d'erreur, et corriger le code en consèquence. Il y a quelque chose qui ne va pas des explications du cours si tu as eu besoin de demander comment corriger l'erreur.

            EDIT : en fait, pareil pour "UB". C'est un terme qui est défini dans les premiers chapitre ( http://guillaume.belz.free.fr/doku.php?id=erreurs ) et que je réutilise souvent. 

            -
            Edité par gbdivers 28 octobre 2018 à 23:38:50

            • Partager sur Facebook
            • Partager sur Twitter

            problème avec assert

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown