Notation pointeur /tableau

Marie -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

voila je suis en train de consulter un programme en C et je me retrouve face à une notation que je n'ai jamais vu jusqu'à présent.


char *fonction(char **str)
int i;

while ((*str)[i]

...



Pouvez-vous me dire à quoi cela correspond le (*str)[i] ?

Merci


A voir également:

2 réponses

jackdada Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   19
 
Le rang i du tableau (*str) se trouvant à l'adresse str.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
A l'adresse *str plutôt
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Marie,

char **str
permet certainement l'accès à un tableau de chaînes C préalablement déclaré et initialisé, dont le pointeur est passé à la fonction.

(*str)[i]
permet d'accéder aux caractères de la première chaîne du tableau de chaînes passé à la fonction et
while ((*str)[i] ...
sera vrai tant que l'index
i
n'est pas sur le caractère de fin de chaîne.


Dal
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Par exemple :

#include <stdio.h>

void fonction(const char **str) {
    printf("1st char of the 1st string: %c\n",(*str)[0]);
    printf("1st char of the 2nd string: %c\n",(*(str + 1))[0]);
}

int main(void) {
    const char * array[] = {
        "1. First string",
        "2. Second string",
        "3. Third string"
    };
    fonction(array);

    return 0;
}

donne :

1st char of the 1st string: 1
1st char of the 2nd string: 2

Dal
0