Condividi tramite


Avviso C6383

Sovraccarico del buffer a causa della conversione di un conteggio di elementi in un conteggio di byte: è previsto un conteggio degli elementi per il parametro *parameter_name* nella chiamata a *function_name*

Questo avviso indica che viene passato un conteggio di byte non costante quando è necessario un conteggio di elementi.

Osservazioni:

In genere, questo avviso si verifica quando una variabile viene moltiplicata per un sizeof tipo. Questo problema probabilmente comporterà la copia di più byte nel buffer di quanto possa contenere.

Nome dell'analisi del codice: ELEMENTS_TO_BYTES

Esempio

Il codice seguente genera questo avviso. wcsncpy consentirà n * sizeof(wchar_t) la copia dei caratteri, ma il buffer può contenere n solo caratteri. Si noti che wcsncpy è una funzione non sicura e non deve essere usata per C28719. La variante non sicura viene usata qui solo ai fini della dimostrazione di questo avviso:

void f(wchar_t* t, wchar_t* s, int n)
{
    wcsncpy (t, s, n*sizeof(wchar_t));
}

Il codice seguente corregge questo avviso inviando il conteggio degli elementi anziché il conteggio dei byte:

void f( wchar_t* t, wchar_t* s, int n )
{
    wcsncpy (t, s, n);
}

Vedi anche