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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per