• [^] # Re: Plusieurs remarques

    Posté par . En réponse au message Effacer un pointeur fournit par une librairie externe. Évalué à 4.

    il me semble avoir lu que les mélanges de malloc/free et new/delete sont proscrits ; non seulement pour un tableau (ça vous l'avez parfaitement respecté) mais aussi dans un même code.

    Ce qui pose problème, c'est la libération par free() d'un pointeur alloué par new, et réciproquement delete pour malloc(). Mais il n'y a pas de contre indication technique a l'utilisation des deux systêmes dans le même code, sous réserver de respecter la régle précédente.
    Eventuellement, on pourra dire que le mélange des deux est une faute de style, une horreur pour la maintenance, une plaie pour la gestion des erreurs, etc. mais ca ne va pas plus loin.

    Autrement dit, si le bouquin en question affirme que le code suivant est proscrit pour raison technique :

    void foobar() {
    char* x = (char*)malloc(1) ;
    char* y = new(nothrow) char ;
    // ...
    delete y ;
    free(x);
    }


    alors mauvais bouquin, changer bouquin.