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