Ciao community, volevo chiedervi una cosa, ma prima guardate i due codici:
1° codice
#include <iostream>
#include <stdio.h>
#include <cstring>
typedef
struct
{
char *nome;
char *cognome;
}Prova;
int main()
{
Prova *Prova1[6];
Prova1->nome=(char*)malloc(45*sizeof(char));
scanf("%s",&Prova1[0]->nome);
printf("%s",Prova1[0]->nome);
system("PAUSE");
return 0;
}
2°codice
#include <iostream>
#include <stdio.h>
#include <cstring>
typedef
struct
{
char *nome;
char *cognome;
}Prova;
int main()
{
Prova *Prova1;
Prova1=(Prova*)malloc(6*sizeof(char));
Prova1->nome=(char*)malloc(45*sizeof(char));
scanf("%s",&Prova1[0]->nome);
printf("%s",Prova1[0]->nome);
system("PAUSE");
return 0;
}
Adesso volevo chiedervi, nel 1° codice credo 6 puntatori a Prova e il codice fila liscio, nel 2°codice invece con la malloc ho creato 6 blocchi di memoria assegnati a Prova1, e il compilatore mi da errore sulla scanf e printf quando metto le parentesi e lo 0, perchè accade questo, con la malloc non ho creato sempre 6 puntatori a Prova come nel primo codice????