Bonjour,
J'ai une petite question concernant les pointeurs et l'accès aux données pointées par ceux-ci.
Par exemple, je crée une petite structure:
ensuite, dans un programme, je souhaite créé un tableau de pair_s au moyen de malloc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct pair_int pair_s; struct pair_int{ int a; int b; };
Voici ma question: Quelle est la différence exacte entre les deux lignes ci-dessous? En fait, quand j'imprime les valeurs de ma pair, je n'obtiens pas le même résultat à la console.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pair_s *pair = malloc(sizeof(pair_s)*10);
La ligne 2 me permet d'imprimer les bonnes valeurs mais logiquement, la ligne 1 devrait le faire aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int i; for(i=0;i<10;i++)printf("a:%i, b:%i\n",pair[i].a,pair[i].b); //ligne 1 for(i=0;i<10;i++)printf("a:%i, b:%i\n",pair+(sizeof(pair_s)*i)->a,pair+(sizeof(pair_s)*i)->b); //ligne 2
Quelqu'un a une idée???
Merci d'avance
Fonzy
Partager