Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2011, 07:00
cirulo
 
Fecha de Ingreso: diciembre-2010
Mensajes: 21
Antigüedad: 13 años, 10 meses
Puntos: 0
¿Por qué falla este simple puntero?

Buenas.

Esto es parte de un bucle, y quiero almacenar en cada pasada nombre[256]. Como no sé el número de nombres uso un puntero, pero no tengo ni idea de por qué falla. Creo entender el funcionamiento de los punteros, y pienso que cap=nombre asigna a cap la dirección del primer elemento de nombre, y cap++ aumenta su dirección para la siguiente pasada. Lo que pongo compila pero no muestra lo que quiero.

Código:
     int n=0;
     char *cap;
     FILE *fichero;
     char cadena_e[256], nombre[256];

     fgets(cadena_e,256,fichero);

     while (cadena_e[n] != ',') 
     {
                 nombre[n-3] = cadena_e[n];
                 n++;
     }

     cap=nombre;
     cap++;

     printf("%s",*cap);   /*No tengo claro si aquí se pone %s o %p o ambos valen*/
     Sleep (1000);
Saludos y gracias.