Hola,
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