cito "El Lenguaje de Programación C" de Kernighan & Ritchie:== para la comparación puntero
Cualquier puntero se puede comparar de manera significativa por la igualdad o desigualdad con cero. Pero el comportamiento no está definido para la aritmética o las comparaciones con punteros que no apuntan a miembros de la misma matriz. (Hay una excepción: la dirección del primer elemento más allá del final de una matriz se puede utilizar en la aritmética de punteros.)
¿Esto significa que no se puede confiar en ==
para comprobar la igualdad de las diferentes punteros? ¿Cuáles son las situaciones en las que esta comparación conduce a un resultado incorrecto?
Si tiene diferentes tipos de punteros y tienen el mismo valor, apuntan a la misma dirección de memoria y es posible que tenga un pequeño problema. Pero de todos modos, generalmente es correcto comparar los punteros si está absolutamente seguro de que el diseño de la memoria es completamente lineal. De lo contrario, no. Piense en un 8086. –