Se connecter avec
S'enregistrer | Connectez-vous

Tableau en C [Résolu]

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

oui,

nom est un pointeur (de type char **) qui pointe sur une liste de pointeur (de type char *) dont chacun pointe sur une liste de caractère (de type char).
Faut faire un dessin avec les cases mémoire pour bien comprendre ;-)

donc tu peut faire:
  1. char * nom1 = nom[0];
  2. char * nom2 = nom[1];

car pense qu'en C, les index commencent par 0 et pas par 1:
les pointeurs sont nom[0], nom[1], nom[2], nom[3] et nom[4].

hum, ce seront plutot des char nom[], qui sont "defaced" ( il me semble que c'est le terme utilisé) en pointeur.

Techniquement, une matrice (comme dans ton cas le nom) n'est pas un tableau de pointeurs, mais un tableau de tableaux : il ne contiendra pas 4 cases contenant les adresses mémoires des chaines, mais 400 cases, sachant que les adresses des cases 0, 100, 200, 300 et 400 sont les nom[0], nom[1], nom[2] et nom[3].
Expert Programmation

Citation :

bluedylc a écrit :
hum, ce seront plutot des char nom[], qui sont "defaced" ( il me semble que c'est le terme utilisé) en pointeur.

Techniquement, une matrice (comme dans ton cas le nom) n'est pas un tableau de pointeurs, mais un tableau de tableaux : il ne contiendra pas 4 cases contenant les adresses mémoires des chaines, mais 400 cases, sachant que les adresses des cases 0, 100, 200, 300 et 400 sont les nom[0], nom[1], nom[2] et nom[3].

Ouais c'est vrai, ce que j'ai dit est inexact concernant le chainage des pointeurs, j'ai perdu l'habitude des tableaux à 2 dimensions constantes ;-)
Lassé par la pub ? Créez un compte
Tom's guide dans le monde