Si on parle uniquement du contenu du titre, "Donner l'adresse d'un pointeur à un autre pointeur", il suffit de faire :
1 2 3 4 5 6 7 8 9
| int a;
int *p1 = NULL;
int **p2=NULL;
p1 = &a;
p2 = &p1;
// ou peut etre :
int *p3;
p3 = p1; |
Mais ce n'est sûrement pas ce que tu veux faire 
pointeur=(Membre*)malloc(sizeof(Membre)*1); // J'ai un tableau de une strucutre.
By the way, il n'est pas nécessaire de caster le retour de malloc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
void Modif_Membre(Membre **pointeur)
{
Membre *pnew=(Membre*)malloc(sizeof(Membre)*2); // Je crée un tableau qui contiendra 2 structures
// A présent j'aimerai faire basculer le premier tableau dans le 2eme, et encoder la 2eme structure. Dans le but de ne pas faire de return et d'utiliser le même pointeur pour tout mon programme.
*pnew=**pointeur;
// Ensuite je libére l'ancien
free(*pointeur);
// Et maintenant je transfert l'adresse de l'ancien pointeur vers le nouveau
pointeur=&pnew;
} |
En fait, tu souhaites que ton pointeur passé en paramètre ne pointe plus vers un emplacement mémoire où de l'espace a été réservé pour une structure ; mais vers un emplacement réservé pour 2 structures. La première structure ne "bouge" pas et tu as désormais la place pour une seconde structure et ainsi dans ton main faire pointeur[1] ? Si oui, tu devrais regarder du côté de la fonction realloc().
Partager