Sdílet prostřednictvím


C6383

upozornění C6383: vyrovnávací paměť přetečení kvůli převodu počet prvků do počet bajtů: Očekává se parametr <number> počet prvků volání <function>

Toto upozornění znamená, že je počet bajtů-constant předán Jestliže počet prvků je vyžadováno.Obvykle dochází při vynásobí proměnné sizeof a typ, ale kód analýzy naznačuje, že je nutné počet prvků.

Příklad

Následující kód vygeneruje toto upozornění:

#include <string.h>

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

Chcete-li opravit toto upozornění nenásobí proměnná s sizeof typu, jak je znázorněno v následujícím kódu:

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

Následující kód opraví toto upozornění pomocí funkce manipulace bezpečné řetězec:

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

Viz také

Referenční dokumentace

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l

Operátor sizeof