La Faq C sur les tableaux montre que pour passer un tableau a une fonction on peut utiliser un pointeur en paramètre (montrant explicitement la conversion du tableau t vers un pointeur).

Comme c'est un tableau qui est passé, on aurai aussi pu écrire. (peut être a placer dans la faq ?)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void initialiser_tab_2(int  ptr[][4], size_t N, size_t M)
{        
    size_t j, i;
 
    for(j = 0; j < N; j++)
    {
        for(i = 0; i < M; i++)
        {
            ptr[j][i]= (int)j;
        }
    }
}
* Dans le cas où l'on passe un pointeur de pointeurs, est on alors obligé d'utiliser la méthode montrée dans la faq avec ptr[M * j + i] <=> t[j][i] ou bien existe il un moyen d'avoir la syntaxe crochet (à mon avis non car on passe un pointeur, mais je demande quand même) ?

*Comment adapter expression ptr[M * j + i] pour un tableau (ou pointeurs) de 3 à N dimensions ? Existe il une 'suite logique' pour déduire facilement qui multiplie quoi ?