Avviso C6065

avviso C6065: puntatore mancante all'argomento 'tipo stringa' a 'function' che corrisponde all'argomento 'number'

Osservazioni:

Questo avviso indica che esiste una mancata corrispondenza tra gli identificatori di formato in una stringa e i tipi dei parametri associati. L'identificatore di formato indica che almeno uno degli argomenti non corrispondenti deve essere un puntatore a una stringa con conteggiata, UNICODE_STRING ad esempio o ANSI_STRING ma non. Questo difetto può causare arresti anomali, overflow del buffer e output potenzialmente non corretto.

Per correggere questo avviso, determinare se l'identificatore di formato o l'argomento corrisponde al comportamento previsto e modificare l'altro in modo che corrisponda. Quando si modifica l'identificatore di formato per una stringa con conteggiata, è consigliabile usare in modo esplicito il prefisso delle dimensioni, %wZ ad esempio o %hZ anziché %Z a causa di problemi di compatibilità tra runtime C (CRT). Per altre informazioni sulla compatibilità CRT, vedere la %Z riga nella documentazione relativa ai caratteri dei campi tipo.

Nome dell'analisi del codice: MISSING_COUNTED_STRING_ARGUMENT_TO_FORMAT_FUNCTION

Esempio

Il codice seguente genera questo avviso perché il valore passato a printf non è un puntatore:

int PrintDiagnostic(UNICODE_STRING u)
{
    printf("%wZ", u);
}

In questo esempio viene corretto l'avviso modificando il parametro passato come puntatore:

int PrintDiagnostic(UNICODE_STRING u)
{
    printf("%wZ", &u);
}

Vedi anche

sintassi delle specifiche di formato: funzioni printf e wprintf
sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l
UNICODE_STRING
ANSI_STRING/_STRING
C4313