Avertissement C6383
Dépassement de mémoire tampon en raison de la conversion d’un nombre d’éléments en nombre d’octets : un nombre d’éléments est attendu pour le paramètre
*parameter_name*
dans l’appel à*function_name*
Cet avertissement indique qu’un nombre d’octets non constants est passé lorsqu’un nombre d’éléments est requis à la place.
Notes
En règle générale, cet avertissement se produit lorsqu’une variable est multipliée par le sizeof
type. Ce problème entraîne probablement la copie de plus d’octets dans la mémoire tampon qu’il ne peut contenir.
Nom de l’analyse du code : ELEMENTS_TO_BYTES
Exemple
Le code suivant génère cet avertissement. wcsncpy
autorise la n * sizeof(wchar_t)
copie des caractères, mais la mémoire tampon ne peut contenir que des n
caractères. Il convient de noter qu’il wcsncpy
s’agit d’une fonction non sécurisée et ne doit pas être utilisée par C28719. La variante non sécurisée est utilisée ici uniquement à des fins de démonstration de cet avertissement :
void f(wchar_t* t, wchar_t* s, int n)
{
wcsncpy (t, s, n*sizeof(wchar_t));
}
Le code suivant corrige cet avertissement en envoyant le nombre d’éléments au lieu du nombre d’octets :
void f( wchar_t* t, wchar_t* s, int n )
{
wcsncpy (t, s, n);
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour