Comment le pointeur à pointeur fonctionne-t-il en c

Comment le pointeur à pointeur fonctionne-t-il en c
Les pointeurs sont une partie cruciale de la programmation C qui vous permet de manipuler facilement les données et la mémoire d'une manière plus importante. Cependant, l'affaire peut arriver lorsque vous devez manipuler un pointeur lui-même et c'est là que pointeur vers le pointeur viendra dans l'entreprise.

Cet article traite du fonctionnement du pointeur à pointeur dans le langage de programmation C.

Avant de se diriger vers comment pointeur vers le pointeur fonctionne, discutons d'abord de ce qui est pointeur vers le pointeur.

Quel est le pointeur vers le pointeur

Un pointeur est une variable utilisée pour stocker une autre adresse de mémoire variable. Tandis qu'un pointeur vers le pointeur, également appelé le pointeur double est un pointeur utilisé pour stocker l'adresse mémoire d'un autre pointeur.

Syntaxe générale pour utiliser le pointeur pour pointer en c

Ce qui suit est la syntaxe pour utiliser un pointeur vers le pointeur en programmation C.

data_type ** variable_name

Le pointeur vers le pointeur La variable doit être définie en ajoutant deux astérisques à son nom. Par exemple, la déclaration suivante déclare un pointeur vers le pointeur du type de données int.

int ** var;

Comment le pointeur à pointeur fonctionne-t-il en c

UN pointeur vers le pointeur agit de manière similaire à un pointeur ordinaire, sauf qu'il modifie la valeur réelle associée au pointeur auquel il pointe. Pour le dire autrement, l'adresse de mémoire maintenue dans un pointeur ordinaire est capable d'être modifiée. Prenons un exemple simple:

int n = 10;
int * pptr1 = & n;
int ** pptr2 = &pptr1;

Dans le code ci-dessus, nous avons une variable int qui stocke une valeur entière. Nous avons également un pointeur nommé «PPTR1» qui stocke l'adresse mémoire de la variable n. Après cela, le «PPTR2» est utilisé qui stocke l'adresse mémoire du pointeur pptr1.

Maintenant, si vous souhaitez accéder aux valeurs de n, Vous avez juste besoin de déréférence le pointeur deux fois. Dans la première déréférence, vous obtiendrez l'adresse mémoire de «PPTR1», Tandis que dans le second, vous obtiendrez la valeur de n. Vous pouvez maintenant obtenir la valeur en utilisant le "Printf ()" fonction.

Voici un code complet pour utiliser le pointeur pour pointer dans la programmation C.

#inclure
int main()
int n = 10;
int * pptr1 = & n;
int ** pptr2 = &pptr1;
printf ("Valeur de n en utilisant pptr2:% d \ n", ** pptr2);
retour 0;

Sortir

Nous pouvons également allouer de la mémoire à une variable de pointeur dans une fonction distincte, puis appliquer ce pointeur dans la fonction d'appel. L'exemple donné montre comment procéder.

#inclure
#inclure
#inclure
void memory_allocation (char ** my_ptr)

* my_ptr = (char *) malloc (10 * sizeof (char));

int main()

char * w;
mémoire_allocation (& w);
strcpy (w, "Linuxhint");
printf ("% s \ n", w);
gratuit (w);
retour 0;

Dans le programme ci-dessus, le "Memory_allocation" La fonction a alloué la mémoire à ptr_1. Le ptr_1 agit comme un double pointeur et stocké une chaîne nommée "Linuxhint" qui est imprimé sur l'écran.

Sortir

Conclusion

Le pointeur vers le pointeur est un concept utile dans le langage de programmation C qui vous permet d'accéder indirectement à une valeur variable via plusieurs couches de pointeurs. Avec l'aide de pointeur vers le pointeur, vous pouvez manipuler un pointeur seul. Les directives susmentionnées vous aident à utiliser pointeur vers le pointeur en programmation C car il comprend également quelques exemples de base qui aident à comprendre le concept de base derrière pointeur vers le pointeur.