Compartir a través de


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

sizeof (Operador)