C6388
avviso C6388: <argomento> non può essere <valore>:questa condizione non soddisfa la specifica della funzione <nome funzione>: righe: x, y
L'avviso indica che nel contesto specificato è stato utilizzato un valore imprevisto.Viene solitamente riportato per valori passati come argomenti a una funzione che non lo prevede.
Esempio
Nel codice C++ seguente l'avviso viene generato perché DoSomething prevede un valore Null ma potrebbe essere stato passato un valore potenzialmente diverso da null:
#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);
}
Per risolvere il problema, utilizzare il seguente codice di esempio:
#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);
}
}
Si noti che l'utilizzo di malloc e free ha molti problemi in termini di perdite di memoria ed eccezioni.Per evitare interamente questi tipi di problemi di perdite ed eccezioni, utilizzare i meccanismi forniti dalla libreria STL (Standard Template Library) di C++.Questi comprendono shared_ptr, unique_ptr e vector.Per ulteriori informazioni, vedere Puntatori intelligenti (C++ moderno) e Riferimento per la libreria standard C++.