C6383C6383

avertissement C6383 : dépassement en raison de la conversion d’un nombre d’éléments en nombre d’octets de mémoire tampon : un nombre d’éléments est attendu pour le paramètre <nombre > dans l’appel à <fonction >warning C6383: buffer overrun due to conversion of an element count into a byte count: an element count is expected for parameter <number> in call to <function>

Cet avertissement indique qu’un nombre d’octets non constant est passé lorsqu’un nombre d’éléments est requis.This warning indicates that a non-constant byte count is being passed when an element count is required. En règle générale, cela se produit lorsqu’une variable est multipliée par la sizeof un type, mais l’analyse du code suggère qu’un nombre d’éléments est requis.Typically, this occurs when a variable is multiplied by the sizeof a type, but code analysis suggests that an element count is required.

ExempleExample

Le code suivant génère cet avertissement :The following code generates this warning:

#include <string.h>

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

Pour corriger cet avertissement, ne multipliez pas la variable avec le sizeof un type comme indiqué dans le code suivant :To correct this warning, do not multiply the variable with the sizeof a type as shown in the following code:

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

Le code suivant corrige cet avertissement à l’aide de la fonction de manipulation de chaîne sécurisée :The following code corrects this warning by using the safe string manipulation function:

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

Voir aussiSee Also

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l sizeof, opérateurstrncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l sizeof Operator