Nous recommandons d’utiliser Visual Studio 2017

C6383

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

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.

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...  
}   

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
sizeof, opérateur

Afficher: