Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/10/2019, à 09:00

chris7522

pointeur sur pointeur(C)

Bonjour a toutes et a tous,
Pouvez vous me donner s'il vous plait , un exemple concret de l'utilité d'un pointeur de pointeur ?

Hors ligne

#2 Le 20/10/2019, à 10:21

grigouille

Re : pointeur sur pointeur(C)

Cela peut servir pour manipuler des tableaux de pointeurs.

$ cat toto.c
#include <stdio.h>
#include <stdlib.h>
void print(int n, char **tab) {
	for(int i = 0 ; i < n ; ++i, ++tab) {
		printf("%s\n", (*tab == NULL ? "" : *tab));
	}
}
int main() {
	int n = 3;
	char **tab = malloc(n*sizeof(*tab)) ;
	int i = 0;
	tab[i++] = "a";
	tab[i++] = "b";
	tab[i++] = "c";
	print(n, tab);
	free(tab);
}
$ gcc -o toto toto.c -Wall -Wextra && ./toto
a
b
c
$ 

Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#3 Le 20/10/2019, à 10:43

NicoApi73

Re : pointeur sur pointeur(C)

Bonjour,

Tableaux en 2 dimensions (matrices)

Tableaux de chaines de caractères...

Dernière modification par NicoApi73 (Le 20/10/2019, à 10:50)

Hors ligne

#4 Le 20/10/2019, à 11:22

grigouille

Re : pointeur sur pointeur(C)

NicoApi73 a écrit :

Tableaux en 2 dimensions (matrices)

Non, pour une matrice N*P, on utilise un tableau de taille N*P et donc un simple pointeur sur la donnée.


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#5 Le 21/10/2019, à 13:43

chris7522

Re : pointeur sur pointeur(C)

Merci a tous les deux de votre aide  smile

Hors ligne