C6383
Mise à jour : novembre 2007
C6383
Avertissement C6383 : dépassement de mémoire tampon suite à la conversion d'un nombre d'éléments en nombre d'octets : un nombre d'éléments est attendu pour le paramètre <numéro> dans l'appel à <fonction>
Cet avertissement indique qu'un nombre d'octets non constant est passé lorsqu'un nombre d'éléments est requis. En général, cela se produit lorsqu'une variable est multipliée par le sizeof d'un type, mais l'analyse de code suggère qu'un nombre d'éléments est requis.
Exemple
Le code suivant génère cet avertissement :
#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 par le sizeof d'un type comme indiqué dans le code suivant :
void f( wchar_t* t, wchar_t* s, int n )
{
// code
wcsncpy (t, s, n);
// code ...
}
Le code suivant corrige cet avertissement en utilisant la fonction de manipulation de chaîne sécurisée :
void f(wchar_t* t, wchar_t* s, size_t n)
{
// code...
wcsncpy_s( t, sizeof(s), s, n );
// code...
}
Voir aussi
Référence
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l