C6383
Actualización: noviembre 2007
C6383
Advertencia C6383: Saturación de búfer debido a la conversión de un recuento de elemento en un recuento de bytes: se esperaba un recuento de elemento para el parámetro <número> en la llamada a <función>
Esta advertencia indica que se pasa un recuento de bytes no constante cuando se requiere un recuento de elementos. Normalmente, se produce cuando se multiplica una variable por el tamaño sizeof de un tipo, pero el análisis de código sugiere que se requiere un recuento de elementos.
Ejemplo
El código siguiente genera esta advertencia:
#include <string.h>
void f( wchar_t* t, wchar_t* s, int n )
{
// code...
wcsncpy (t, s, n*sizeof(wchar_t)); // warning 6383
// code ...
}
Para corregir esta advertencia, no multiplique la variable por el tamaño sizeof de un tipo, como se muestra en el código siguiente:
void f( wchar_t* t, wchar_t* s, int n )
{
// code
wcsncpy (t, s, n);
// code ...
}
El código siguiente corrige esta advertencia mediante la función de manipulación de cadenas de caracteres segura:
void f(wchar_t* t, wchar_t* s, size_t n)
{
// code...
wcsncpy_s( t, sizeof(s), s, n );
// code...
}
Vea también
Referencia
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l