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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de