• [^] # Re: Je pense que tu confonds les cas où c'est nécessaire

    Posté par . En réponse au journal Genèse d'un journal. Évalué à 1.

    C'est tout la question de savoir jusqu'à quel point il faut vérifier les entrées (ou les sorties); à tout vouloir vérifier, dans tous les moindres détails (y compris ceux qui ne sont pas censés arriver), on arrive à un ratio de ligne vérifiant les entrés très largement supérieur aux lignes utile au calcul / traitement;

    Cela peut se ressentir à l'exécution; tout comme une certaine lourdeur dans le code et sa maintenabilité; j'ai un collègue qui parle de GIGO, (garbage in, garbage out), pour gérer des entrée hors normes.

    Pour prendre le cas de sqrt() (fonction externe), je ne vais pas m'amuser à vérifier son retour, à la rigueur je test le nombre que je met en entrée, mais à partir du moment où je lui file un nombre positif, je sais que j'aurais un truc correcte en sortie.

    Par contre pour le coup du malloc/realloc, j'aurais tendance à vouloir vérifier le résultat, je suis particulièrement sensible à ce genre de blague (par contre j'utiliserai asprintf pour faire ce qui est demandé ;

    mon préféré restera une fonction c récursive

    int a foo(int b){
     static int *tab=NULL;
     ...
     tab[n]=foo(x);
     ... 
    }
    
    

    avec un realloc dans foo; une pure merveille (de bug vicieux) ;)

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent