C6383

تحذير C6383: مخزن مؤقت تجاوز سعة بسبب في حساب تحويل عنصر في عدد بايت: عد عنصر هو المتوقع للمعلمة <رقم> في استدعاء <دالة>

Th هو تحذير تشير إلى عدد البايتات غير ثابت هو تمرير عند عد عنصر هو مطلوب. th بشكل عام، هو عند متغير هو ضرب sizeofالنوع ولكن analys رمز هو يقترح حساب عنصر هو مطلوب.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير:

#include <string.h>

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

إلى تصحيح هذا التحذير، بضرب المتغير مع sizeofنوع كما هو موضح في التعليمة البرمجية التالية:

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

تصحيح تعليمات برمجية التالية هذا التحذير بواسطة استخدام دالة معالجة سلسلة آمن:

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

راجع أيضًا:

المرجع

strncpy_s _strncpy_s_l ، wcsncpy_s ، _wcsncpy_s_l ، _mbsncpy_s ، _mbsncpy_s_l

sizeof Operator