Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
"Argument" darf nicht "Wert" sein: Dies entspricht nicht der Spezifikation für die Funktion "Funktionsname": Zeilen: x, y
Hinweise
Diese Warnung gibt an, dass im angegebenen Kontext ein unerwarteter Wert verwendet wird. Diese Warnung wird in der Regel für Werte gemeldet, die als Argumente an eine Funktion übergeben werden, die sie nicht erwartet.
Name der Codeanalyse: INVALID_PARAM_VALUE_2
Beispiel
Der folgende Code generiert die Warnung C6388, da erwartet wird, dass DoSomething ein Nullwert, aber möglicherweise ein Nicht-Null-Wert übergeben wird:
// C6388_warning.cpp
#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);
}
Verwenden Sie den folgenden Beispielcode, um diese Warnung zu korrigieren:
// C6388_no_warning.cpp
#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);
}
}
Die Verwendung von malloc und free hat viele Fallstricke in Bezug auf Speicherlecks und Ausnahmen. Um diese Arten von Lecks und Ausnahmeproblemen vollständig zu vermeiden, verwenden Sie die Mechanismen, die von der C++-Standardbibliothek (STL) bereitgestellt werden. Dazu gehören shared_ptr, , unique_ptrund Container wie vector. Weitere Informationen finden Sie unter Intelligente Zeiger und C++-Standardbibliothek.