Aracılığıyla paylaş


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

sizeof operatörü