C6383
C6383 Uyarı: Bayt sayma öğe sayısı dönüşümü nedeniyle taşması: öğe sayısı <number> parametresi için bekleniyor <function> arama
Bu uyarıyı bir öğe sayısı gerekli olduğunda sabit olmayan bayt sayısı geçirilen gösterir.Değişken çarpılır genellikle, bu durum ortaya sizeof bir tür, ancak kod çözümleme gerekli bir öğe sayısı.
Örnek
Aşağıdaki kod, bu uyarı oluşturur:
#include <string.h>
void f( wchar_t* t, wchar_t* s, int n )
{
// code...
wcsncpy (t, s, n*sizeof(wchar_t)); // warning 6383
// code ...
}
Bu uyarı düzeltmek için değişkeni ile çarpmak değil sizeof aşağıdaki kodda gösterildiği gibi yazın:
void f( wchar_t* t, wchar_t* s, int n )
{
// code
wcsncpy (t, s, n);
// code ...
}
Aşağıdaki kod, güvenli dize işleme işlevini kullanarak bu uyarıyı düzeltir:
void f(wchar_t* t, wchar_t* s, size_t n)
{
// code...
wcsncpy_s( t, sizeof(s), s, n );
// code...
}
Ayrıca bkz.
Başvuru
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l