Cours : Les doubles tableaux
Nous allons maintenant aborder un nouveau type de tableaux qui peut être très pratique : le double tableau.
Imaginons que j'ai une chaine de caractères et que je veuille la diviser en plusieurs mots.
J'ai :
et j'aimerais pour plus de clarté ranger tous ces mots dans un tableau qui ressemblerait à ça :
J'aurais besoin d'un tableau qui soit en fait un tableau de char *.
Ça tombe bien cela existe et cela s'écrit : char **.
Allouer la mémoire pour un char **
Pour allouer cette mémoire, il va falloir d'abord allouer la mémoire pour le tableau puis la mémoire pour chacune des chaines de caractères :
Dans l'exemple suivant, je veux stocker séparément les deux mots de la phrase "Hello World":
Je vais donc devoir allouer la mémoire pour 3 char * (pour un pointeur l'équivalent de '\0' c'est NULL à écrire en majuscules) :
Libérer la mémoire d'un char **
Attention, tout pointeur que vous avez malloc doit être free vous allez donc devoir libérer la mémoire du char ** et la mémoire de chacun des char * à l'intérieur :