Freigeben über


C28183

Warnung C28183: Das Argument kann ein Wert sein und ist eine Kopie des Werts, der im Zeiger gefunden wurde

Diese Warnung gibt an, dass dieser Wert im aktuellen Kontext unerwartet ist.Diese Warnung wird normalerweise, wenn ein NULL-Wert als Argument an eine Funktion übergeben, die es nicht zulässt.Der Wert wurde tatsächlich in der angegebenen Variable gefunden, und das Argument ist eine Kopie dieser Variablen.

Das Codeanalysetool meldet diese Warnung am ersten Punkt, in dem es definitiv feststellen kann, ob der Zeiger NULL ist, oder dass er einen ungültigen Wert enthält.Es ist jedoch häufig der Fall, dass der Fehler weiter oben in der Ablaufverfolgung tatsächlich auftreten kann.Wenn dies geschieht, gibt das Codeanalysetool auch die Zeilennummer der möglichen ersten Instanz -- normalerweise an einer Position, an der er nicht definitiv feststellen kann, dass die Warnung geeignet war.In diesen Fällen wird der frühere Position, an der dieser auftreten kann, zur Warnmeldung angefügt.In der Regel sollte eine Codeänderung an oder vor dieser Zeilennummer, anstatt zum Zeitpunkt des Berichts auftreten.

Beispiel

Im folgenden Beispiel wird das Codeanalysetool, dass s in der if-Anweisung NULL ist, und der Text wird if entnommen.t der Zeiger s wird dann zugewiesen und wird t eingesetzt wird, in der NULL kann auftreten.

#include <windows.h>

int fun2(char *s)
{
    char *t;
    if (s == NULL) {
       //... but s is unchanged 
    }

    t = s;

    return lstrlenA(t);
}

Für dieses Codebeispiel die Codeanalysetoolberichte die folgende Warnung: