Problemas con punteros en c

nanillo
06 de Junio del 2005
Mi problema es que al pasar un puntero 'char' a una funcion, intento comparar el valor de ese puntero dentro de esa función con 'strcmp' pero el valor no es que le ha sido pasado a la funcion, adjunto codigo:
Es decir que...

main()
{
char * buf_out;

buf_out = (char *)irp->AssociatedIrp.SystemBuffer;
request(buf_out);
}

int request(char *buf)
{
status = clear_a_flt_id(buf); //esta es la llamada a la funcion
return status;
}

int clear_a_flt_id(char *id)
{
printf("STRCMP: %x", strcmp("5",id));

return 1;
}


En el momento de hacer el printf la funcion strcmp me da 1 (no son iguales), cuando me tendria q estar dando 0 (igaules).
Sabe alguien porque?

gim
06 de Junio del 2005
No tiene mal aspecto.
Yo me inclino a que la causa de que no te salga bien proviene de:

irp->AssociatedIrp.SystemBuffer


nanillo
06 de Junio del 2005
gracias por responder gim, el caso es que en su momento a mi tambien se me ocurrio que podria ser esto, pero descarte esa posibilidad ya que si en lugar de hacer:

printf("STRCMP: %x", strcmp("5",id));

hago esto otro:

printf(id);

En este caso en el 'command line' me muestra lo correcto es decir la cadena "5".
En realidad no utilizo 'printf(id);' sino 'KdPrint((id));' ya que trabaja en modo kernel. De ahi que cada error que genera se me cae el sistema, y tengo que volver a registrar, cargar el driver...etc, pero bueno gajes del oficio.

Gracias.