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.