Buenas, no estoy seguro si esto ya es conocido o no pero jugando con una implementación de strcmp descubrí que con solo comparar la dirección de inicio de dos cadenas se podía saber si eran iguales o no
#include <stdio.h>
int strcmp1(char *s, char *t)
{
/*for(; *s==*t; s++, t++)
{
printf("s = %p, s = %c\n", s, *s);
printf("t = %p, t = %c\n", t, *t);
if(*s=='\0')
return 0;
}*/
return s - t;
}
int main(void)
{
if(strcmp1("hola", "hola") == 0)
puts("Igual");
else
puts("Desigual");
return 0;
}
Según veo con el depurador las direcciones de las cadenas son iguales sin ambas son iguales caso contrario son diferentes. Siendo sincero no entiendo porque pasa esto dos cadenas diferentes no deberían ocupar la misma dirección al mismo tiempo
¿Alguien puede explicar que ocurre aquí?