[debutant][allocation dynamique] Segmentation fault...
Bonjour, alors voici mon problème et le code qui le crée ;-) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
typedef struct base
{
char* name;
char* filename;
} base;
void SousSaisie(base **data,int n)
{
char buffer[50];
int i=0;
data=(base**)malloc(n*sizeof(base));
//Le debugger m'indique data!=NULL dc pas de pbs d'alloc
for(i=0; i < n; i++)
{
printf("Nom ? ");
scanf("%50s",buffer);
data[i]->name=(char*)malloc((strlen(buffer)+1)*sizeof(char)); //--> Problème
}
} |
La deuxième allocation en fonctionne pas, pourquoi ?? Sur un tableau de pointeurs sur des structures, j'ai bien le droit d'écrire
Code:
tab_pointeurs[index]->membre_structure=...
?
Re: [debutant][allocation dynamique] Segmentation fault...
Citation:
Envoyé par x0r
Bonjour, alors voici mon problème et le code qui le crée ;-) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
typedef struct base
{
char* name;
char* filename;
} base;
void SousSaisie(base **data,int n)
{
char buffer[50];
int i=0;
data=(base**)malloc(n*sizeof(base));
//Le debugger m'indique data!=NULL dc pas de pbs d'alloc
for(i=0; i < n; i++)
{
printf("Nom ? ");
scanf("%50s",buffer);
data[i]->name=(char*)malloc((strlen(buffer)+1)*sizeof(char)); //--> Problème
}
} |
Que cherches tu exactement a faire ? Un tableau de n base ou un tableau de n base*.
Parce que la tu as fait un tableau de n base* (qui eux meme ne sont pas alloue, voir le post de rurouni alex), de plus la valeur de date sera perdu lors du retour a la fonction appelante (passage par valeur).