Bonjour @J-M-L,
En fait, j'essaye de comprendre. Pouvez-vous me dire si mon analyse de la boucle while est correcte ?
*destination = *(source + beg);
:
*destination
: déréférencement du pointeur destination soit destination[0]
, donc contenu pointé du premier élément du tableau destination.
source
: pointeur constant sur le premier élément du tableau source, c’est donc une adresse mémoire du tableau, la première.
beg
: entier qui détermine le premier élément du tableau source à extraire.
Source + beg
: adresse qui contient le premier élément du tableau source
à extraire.
*(source + beg)
: déréférencement ou contenu de l’adresse du premier élément du tableau source à extraire.
destination++
: incrémentation de l’adresse qui pointe vers le tableau destination
source++
: incrémentation de l’adresse qui pointe vers le tableau source
*destination = *(source + beg);
destination++;
source++;
En incrémentant les adresse des tableaux destination
et source
, on parcourt donc leurs adresses en mémoire (en partant de la première pour destination et de beg pour source). Par le biais du déréférencement, le contenu de chaque adresse mémoire du tableau destination est égal au contenu de chaque adresse mémoire du tableau source à partir de beg (+ beg).
Lorsqu' on a extrait nos n
éléments, le dernier élément de destination est égal à ‘\0’ :
*destination = '\0';
Voilà, il me semble que cette boucle remplit le tableau char destination[25];
élément par élément en commençant par le premier et en le terminant bien évidemment par le zéro terminal.
Lorsque vous m'aurez répondu, Je réfléchirai au fait que :
Merci par avance pour votre patience.
Bonne journée.