bonjour,

avec ma petite connaissance actuelle du c, je cherche a alloué un tableau de pointeurs de type struct Contact.

dans mes divers tests je passe donc un paramètre **pContact dans une fonction pour effectué mon allocation mais a la sortie de la fonction le tableau de pointeur de type struct reste null.

Contact est une structure qui possède une autre structure adresse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
typedef struct Adresse Adresse;
struct Adresse {
	int numero;
	char rue[128];
	char codePostal[8];
	char ville[50];
	char pays[50];
};
 
typedef struct Contact Contact;
struct Contact{
	char nom[50];
	char prenom[50];
	int age;
	Adresse adresse;
};
la fonction qui me pose problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
void allocContacts(Contact **pContact, int taille){
 
	static int oldTaille = 0;
	int tailleTotal = oldTaille + taille;
 
	if(oldTaille == 0){		
 
		pContact = malloc(taille * sizeof(pContact));
 
	}else{
 
		pContact = realloc(pContact, (tailleTotal * sizeof(pContact)));
	}
 
	if(pContact == NULL){
		printf("Erreur allocation !");
		exit(EXIT_FAILURE);
	}
 
	for(int i=0; i < tailleTotal; i++){
			if (pContact[i] == NULL) {
				pContact[i] = malloc(sizeof(*(pContact[i])));
			}
	}
 
	oldTaille += taille;
}
le test de la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Contact **pContact = NULL;
	allocContacts(pContact, 2);
 
	allocContacts(pContact, 5);
je pense que mon allocation pour un élément du tableau est fausse.
petit détail, je suis sur mac os x
Merci pour vos lumières