Udostępnij za pośrednictwem


C6383

Ostrzeżenie C6383: bufor przekroczenie ze względu na konwersji elementu count liczba bajtów: oczekuje elementu count dla parametru <number> w wywołaniu <function>

To ostrzeżenie wskazuje, że liczba bajtów-stała jest przekazywany podczas zliczania element jest wymagany.Zwykle występuje to, gdy zmienna jest mnożona przez sizeof w rodzaju, ale kod analizy wynika, że wymagana jest liczba elementów.

Przykład

Poniższy kod generuje ostrzeżenie to:

#include <string.h>

void f( wchar_t* t, wchar_t* s, int n )
{
  // code...
  wcsncpy (t, s, n*sizeof(wchar_t)); // warning 6383
  // code ...
}

Aby poprawić to ostrzeżenie, nie należy mnożyć zmiennej z sizeof typu, jak pokazano w poniższym kodzie:

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

Poniższy kod poprawia to ostrzeżenie przy użyciu funkcji manipulacji bezpieczne ciąg:

void f(wchar_t* t, wchar_t* s, size_t n)
{
  // code...
  wcsncpy_s( t, sizeof(s), s, n );
  // code...
} 

Zobacz też

Informacje

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l

Operatora sizeof