Advertencia C6383

Saturación del búfer debido a la conversión de un recuento de elementos en un recuento de bytes: se espera un recuento de elementos para el parámetro *parameter_name* en la llamada a . *function_name*

Esta advertencia indica que se pasa un recuento de bytes no constante cuando se requiere un recuento de elementos.

Comentarios

Normalmente, esta advertencia se produce cuando una variable se multiplica por un sizeof tipo. Este problema probablemente provocará que se copien más bytes en el búfer de lo que puede contener.

Nombre del análisis de código: ELEMENTS_TO_BYTES

Ejemplo

El código siguiente genera esta advertencia. wcsncpy permitirá n * sizeof(wchar_t) copiar caracteres, pero el búfer solo puede contener n caracteres. Debe tenerse en cuenta que wcsncpy es una función no segura y no debe usarse por C28719. La variante no segura se usa aquí solo para mostrar esta advertencia:

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

El código siguiente corrige esta advertencia enviando el recuento de elementos en lugar del recuento de bytes:

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

Consulte también