C6388C6388

avertissement C6388 : <argument > ne peut pas être <valeur > : Ceci n’est pas conforme à la spécification de la fonction <nom de la fonction > : lignes : x, ywarning C6388: <argument> may not be <value>: this does not adhere to the specification for the function <function name>: Lines: x, y

Cet avertissement indique qu’une valeur inattendue est utilisée dans le contexte spécifié.This warning indicates that an unexpected value is being used in the specified context. En règle générale, cela est signalé pour les valeurs passées comme arguments à une fonction qui n’est pas prévu.This is typically reported for values passed as arguments to a function that does not expect it.

ExempleExample

Le code C++ suivant génère cet avertissement car DoSomething attend une valeur null, mais une valeur potentiellement non null peut être transmise :The following C++ code generates this warning because DoSomething expects a null value but a potentially non-null value might be passed:


#include <string.h>  
#include <malloc.h>  
#include <sal.h>  

void DoSomething( _Pre_ _Null_ void* pReserved );  

void f()  
{  
    void* p = malloc( 10 );  
    DoSomething( p );  // Warning C6388  
    // code...  
    free(p);  
}  

Pour corriger cet avertissement, utilisez l’exemple de code suivant :To correct this warning, use the following sample code:


#include <string.h>  
#include <malloc.h>  
#include <sal.h>  

void DoSomething( _Pre_ _Null_ void* pReserved );  
void f()  
{  
    void* p = malloc( 10 );  
    if (!p)  
    {  
        DoSomething( p );    
    }  
    else  
    {  
        // code...  
        free(p);  
    }  
}  

Notez que l’utilisation de malloc et libre ont de nombreuses pièges en termes de fuites de mémoire et des exceptions.Note that the use of malloc and free have many pitfalls in terms of memory leaks and exceptions. Pour éviter ces types de fuites et totalement de problèmes d’exception, utilisez les mécanismes fournis par la bibliothèque STL (C++ Standard Template Library).To avoid these kinds of leaks and exception problems altogether, use the mechanisms that are provided by the C++ Standard Template Library (STL). Ceux-ci incluent shared_ptr, unique_ptr, et vecteur.These include shared_ptr, unique_ptr, and vector. Pour plus d’informations, consultez pointeurs intelligents et bibliothèque Standard C++.For more information, see Smart Pointers and C++ Standard Library.