PDA

View Full Version : [C] struct allocate dinamicamente


Antares77
24-06-2010, 09:20
salve a tutti e grazie per l'eventuale

ho una struct dichiarata in questo modo

typedef char* string;

typedef struct{
string nome;
string cognome;
string data_nascita;
}persona;



e un prototipo di funzione cosė dichiarato

persona* crea_nuova_persona(const string nome,const string cognome,const string data_nascita);

quello che devo fare č creare dinamicamente una nuova istanza della struttura persona e inizializzarla con i valori passati come parametri..
ma ho provato di tutto...con malloc e altro...ogni volta che utilizzo la funzione strcpy si blocca tutto

aiutatemi

Darecon
24-06-2010, 14:13
Tu hai allocato il puntatore a char, non lo spazio di memoria che realmente serve.. Per quello si blocca sulla strcpy che tenta di copiare dove non e' stata allocata la memoria..
quindi, o fai una malloc per ogni campo prima di copiare oppure allochi direttamente cosi':

typedef struct{
char nome[dim];
char cognome[dim];
char data_nascita[dim];
}persona;

Dove dim e' un intero.. ;)