tengo el siguiente código en C
Código:
#include <stdio.h> #include <stdlib.h> int main(void){ char *ad[5]; int i; char *p; p=(char *)malloc(100); for(i=0; i<100; i++) *(p+i)=0; for(i=0; i<5; i++) ad[i]=p + i* 3; for(i=0; i<5; i++) gets(ad[i]); printf(ad[1]-1); free(p); }
Se ejecuta con la siguiente entrada:
hola
examen
el
struct
array
y el resultado por pantalla es "lexael".
Después de hacer varias trazas, no consigo entender cómo funciona exactamente el segundo bucle for. Sé que en cada iteración hace "p+0", "p+3", "p+6",... y que en el array de punteros se van almacenando las líneas que se escriben por teclado ( ad[0]=hola, ad[1]=examen,...) pero luego no consigo ver cómo sale ese resultado. Si alguien me pudiera dar una breve explicación..
Gracias