Mírate la documentación de strstr(), haz el favor
printf("%sn", (char*)((unsigned int)ptr + strlen("Ki")));
- No pongas las condiciones del if seguidas, es poco legible, y usa siempre { }, te ahorrarás futuros quebraderos de cabeza.- Usa NULL, no 0 (tampoco hagas !ptr)- No uses literales en el código, usa constantes (#define)
Y para los nulos prefiero usar el 0, ¿Para que escribir 4 letras y ocultar lo que en realidad es un puntero nulo?
Tampoco me hago problema con un if en una sóla linea siempre y cuando sea más rápido de leer.
printf("%sn", (char*)((unsigned int)ptr + strlen("Ki")));eso es la solucion a?
Aunque basta con ponert unsigned long int
Estas casteando la direccion de memoria, y le sumas 3, que es la longitud de la cadena.Entonces, si la direccion de ptr empieza en "0x7fffd1573a20" le sumas 3 quedando: "0x7fffd1573a23"Es correcto, o me estoy liando?
Entonces recibes a partir de 0x7fffd1573a23 hasta final de linea.
No hay de qué, estamos aquí para compartir lo que sabemos, así que ya sabes, ahora te toca a ti compartir