#include <stdio.h>
#include <string.h>
#define M_MAX 5
struct studente
{
int matricola;
char *nome;
char *cognome;
};
int main()
{
struct studente M[DIM_M];
int n, i;
printf("\n\tRegistro attivita' studenti \n\tInserimento dati matricole \n\tNumero studenti? ");
scanf("%d", &n);
//Inserimento dati all'interno della struttura
for(i = 0; i < n; i++)
{
printf("\n\n\tInserimento %d\n", i);
printf("\tMatricola: "); scanf("%d\n", &M[i].matricola);
printf("\tNome: "); scanf("%s \n", &M[i].nome);
printf("\tCognome: "); scanf("%s \n", &M[i].cognome);
}
}
Compilando mi dice:
main.c:18:3: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char **’ [-Wformat=]
printf("\tNome: "); scanf("%s \n", &M.nome);
^
main.c:19:3: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char **’ [-Wformat=]
printf("\tCognome: "); scanf("%s \n", &M.cognome);
^
Perché?