C28183

avviso C28183: L'argomento può essere un valore ed è una copia del valore trovato nel puntatore

Questo avviso indica che questo valore è imprevisto nel contesto corrente.Questo avviso compare generalmente quando un valore NULL viene passato come argomento ad una funzione che non consente di averlo.Il valore in realtà è stato trovato nella variabile specificata e l'argomento è una copia della variabile.

Lo strumento di Analisi del codice segnala il problema al primo punto in cui si può determinare definitivamente che il puntatore è NULL o che contiene un valore non valido.Tuttavia, l'errore si può spesso verificare precedentemente nella traccia.In questo caso, lo strumento di Analisi del codice fornirà anche il numero di riga della prima istanza possibile -- generalmente in una posizione dove non si può determinare definitivamente se questo avviso è appropriato.In questi casi, la posizione precedente in cui questo può verificarsi viene associata al messaggio di avviso.In genere, una modifica al codice è necessaria prima o al numero di riga, anziché sul punto del report.

Esempio

Nell'esempio seguente, lo strumento di Analisi del codice determina che s è NULL nell'istruzione if e il corpo di if viene eseguito.Il puntatore s viene quindi assegnato a t e quindi t viene utilizzato in un modo in cui la risoluzione di un riferimento a un valore NULL può verificarsi.

#include <windows.h>

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

    t = s;

    return lstrlenA(t);
}

Per questo esempio di codice, lo strumento di Analisi del codice segnala il seguente avviso: