C Problema Puntatore e struct!!!!

di il
2 risposte

C Problema Puntatore e struct!!!!

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????

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte