Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: Dudas array de punteros [C]  (Leído 513 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Tram
Wizard
****

Prestigio: 0
Desconectado Desconectado

Mensajes: 5


« en: 20/08/2008, 10:13:02 »

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 ni a dónde apunta p. Si alguien me pudiera dar una breve explicación..
Gracias
En línea
Sherekan
Savant
*******

Prestigio: 8
Desconectado Desconectado

Sexo: Femenino
Mensajes: 30


Just Sherekan


WWW
Lenguajes:
PHP, Java, C/C++
XML, HTML/XHTML
Bases de datos:
MySQL
« Respuesta #1 en: 20/08/2008, 17:48:03 »

Te hago un dibujito para que se entienda mejor:

Saludos.
En línea
Tram
Wizard
****

Prestigio: 0
Desconectado Desconectado

Mensajes: 5


« Respuesta #2 en: 21/08/2008, 12:28:49 »

muchas gracias  Sonrisa
En línea
Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: