C26408 NO_MALLOC_FREEC26408 NO_MALLOC_FREE

Cet avertissement indicateurs chaque endroit où malloc ou free est appelé explicitement conformément aux R.10 : éviter malloc et free.This warning flags places where malloc or free is invoked explicitly in accordance to R.10: Avoid malloc and free. Un correctif potentiel pour ces avertissements serait d’utiliser std::make_unique afin d’éviter la création explicite et la destruction d’objets.One potential fix for such warnings would be to use std::make_unique to avoid explicit creation and destruction of objects. Si un correctif de ce type n’est pas acceptable, opérateur nouveau et supprimer doit être préféré.If such a fix is not acceptable, operator new and delete should be preferred. Dans certains cas, si les exceptions ne sont pas bienvenues, malloc et free peut être remplacé par la version nothrow des opérateurs new et delete.In some cases, if exceptions are not welcome, malloc and free can be replaced with the nothrow version of operators new and delete.

NotesRemarks

  • Pour détecter malloc(), nous vérifions si un appel appelle une fonction globale avec le nom « malloc » ou « std::malloc ».To detect malloc() we check if a call invokes a global function with name "malloc" or "std::malloc". La fonction doit retourner un pointeur vers void et accepter un paramètre de type intégral non signé.The function must return a pointer to void and accept one parameter of unsigned integral type.
  • Pour détecter free() nous vérifions les fonctions globales avec des noms « gratuits » ou « std::free » qui ne retournent aucun résultat et acceptent un paramètre, qui est un pointeur vers void.To detect free() we check global functions with names "free" or "std::free" which return no result and accept one parameter, which is a pointer to void.