Compartir a través de


C28164

advertencia C28164: El argumento se está pasando a una función que espera un puntero a un objeto (no un puntero a un puntero)

Esta advertencia se muestra cuando un puntero a un puntero se utiliza en una llamada a una función que espera un puntero a un objeto.

la función toma un valor PVOID en esta posición.Generalmente, esto indica que &pXXX se usó cuando pXXX fue requerido.

Algunas funciones polimórficas (las funciones que se pueden evaluar y ser aplicadas a valores de distintos tipos) se implementan en C utilizando un argumento PVOID que toma cualquier tipo de puntero.Sin embargo, esto permite que el programador codifique un puntero a un puntero sin producir un error del compilador, aunque este tipo no sea el adecuado.

Ejemplo

El siguiente ejemplo de código genera la advertencia:

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

El ejemplo de código siguiente evita la advertencia:

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