Tom's Guide > Forum > Programmation > Tableau en C [Résolu]
Mot :    Pseudo :           
 

Bonjour tout le monde,
je crée un petit programme en C et j'aimerais savoir, si je crée un tableau: char nom[5][100]; Est-ce que nom[1], nom[2], nom[3], nom[4] et nom[5] seront des pointeurs ?

Merci

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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:

Code :
  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].

Répondre à CRicky

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].

Répondre à bluedylc

Ok merci a vous deux !

Répondre à -Julian-

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 ;-)

Répondre à CRicky
Tom's Guide > Forum > Programmation > Tableau en C [Résolu]
Aller à :

Il y a 1068 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens