salve a tutti ho un dubbio sull uso delle stringhe nelle struct,il problema è che se io creo una struct del genere

codice:
struct studente{
		     char nome[30];
                       char cognome[30];
                       int eta;
                       int matricola;
                       }v[100];
con un ciclo for di questo tipo riesco a far riempire il vettore da input

codice:
 for(i=0;i<n;i++){
      printf("INSERISCI NOME %d° STUDENTE:\n",i+1);
      scanf("%s",v[i].nome);
      printf("INSERISCI COGNOME %d° STUDENTE:\n",i+1);
      scanf("%s",v[i].cognome);
      printf("INSERISCI ETA' %d° STUDENTE:\n",i+1);
      scanf("%d",&v[i].eta);
      printf("INSERISCI MATRICOLA %d° STUDENTE:\n",i+1);
      scanf("%d",&v[i].matricola);
      printf("\n\n");
ma se io voglio invece riempire il vettore direttamente nel main per quale motivo devo creare la struct in questo modo

codice:
struct card{
             char *seme;
             char *carta;}mazzo[40];
anzichè

codice:
struct card{
             char seme[20];
             char carta[20];}mazzo[40];
???

grazie anticipatamente =)