Ho problemi con la strcpy, in particolare mi manda in segmentation fault l'esecuzione del seguente codice:
Chiamante:
int main(void)
{
utente *mioUtente=(utente*)malloc(sizeof(utente));
mioUtente->nickname=(char*)malloc(MaxLenNick*sizeof(char));
mioUtente->password=(char*)malloc(MaxLenPass*sizeof(char));
strcpy(mioUtente->nickname,"utente1");
strcpy(mioUtente->password,"password1");
copia(mioUtente);
//Altro codice...
}
Funzione che mi da problemi:
void copia(void *value)
{
int len=0;
utente *user=(utente*)value; //cast del void pointer ricevuto in input
utente *nuovoUtente=(utente*)malloc(sizeof(utente));
len=strlen(user->nickname);
nuovoUtente->nickname=(char*)malloc(len*sizeof(char));
len=strlen(user->password);
nuovoUtente->nickname=(char*)malloc(len*sizeof(char));
strcpy(nuovoUtente->nickname,user->nickname); //ISTRUZIONE che mi genera segmentation fault
strcpy(nuovoUtente->password,user->password); //ISTRUZIONE che mi genera segmentation fault
printf("utente: %s \npass:%s",nuovoUtente->nickname,nuovoUtente->password);
}
struct "utente":
typedef struct utente
{
char *password;
char *nickname;
}utente;
Non riesco a capire quale sia il problema, ci sto sbattendo la testa da un po di tempo, ma non ne esco a capo . Ogni suggerimento è ben accetto, grazie.