{
char *ptr = cadena;
while(*ptr++);
return ptr - cadena;
}
solo un pequeño fallo, al final del bucle tienes que desincrementar ptr, por que al ser un char* tambien cuenta el caracter '\0';
Mientras el valor almacenado en ptr aumente en 1, devuelve el valor de ptr - cadena,¿que da el resultado de ptr - cadena?
En realidad el while no tiene cuerpo, por lo tanto no se puede decir que mientras el valor almacenado en ptr aumente de 1 devuelve el valor de ptr-cadena...
solo devuelve la resta al final, cuando el while termina.
Lo que quiere hacer nuestro camarada
Queta, es que la direccion de memoria (ptr) incremente hasta llegar al final de la cadena, luego resta ambas direcciones lo que devuelve es el tamaño de la cadena... (no se si ha quedado claro)
PD: no se por que pero al llamar a la funcion de Queta, "strlen" no entra dentro de su funcion, sino que usara la funcion de la libreria string.h (y eso que no la he incluido).
saludos