Partager via


C28164

avertissement C28164 : L'argument est passé à une fonction qui nécessite un pointeur vers un objet (pas un pointeur vers un pointeur)

Cet avertissement est émis lorsqu'un pointeur vers un pointeur est utilisé dans un appel à une fonction qui attend un pointeur vers un objet.

La fonction prend un PVOID à cette position.En général, cela indique que le &pXXX a été utilisé lorsque pXXX est requis.

Certaines fonctions polymorphes (fonctions qui peuvent évaluer, et être appliquées à, des valeurs de différents types) sont implémentées dans C à l'aide d'un argument PVOID qui prend n'importe quel type de pointeur.Toutefois, cela permet au programmeur de coder un pointeur vers un pointeur sans provoquer une erreur du compilateur, même si ce type n'est pas approprié.

Exemple

L'exemple de code suivant génère cet avertissement :

PFAST_MUTEX pFm;
...
KeWaitForSingleObject(&pFm, UserRequest, UserMode, false, NULL);

L'exemple de code suivant permet d'éviter l'avertissement :

PFAST_MUTEX pFm;
...
KeWaitForSingleObject(pFm, UserRequest, UserMode, false, NULL);