Parcourir un tableau 2D
Résolu
anthony
-
anthony -
anthony -
Bonjour,
voila un code qui m'affiche des résultat bizzard:
et voici ce que sa m'affiche:
voila un code qui m'affiche des résultat bizzard:
#include <stdio.h> #include <stdlib.h> void tab2D(int (*ptr)[4]); int main() { int multi[2][4] = {{1,2,3,4},{5,6,7,8}}; int (*ptr)[4], count; for(count = 0; count < 2; count++) tab2D(ptr++); return 0; } void tab2D(int (*ptr)[4]) { int *p, count; p = (int *)ptr; for(count = 0; count < 4; count++) printf("%d\n", *p++); }
et voici ce que sa m'affiche:
-1 1996096541 110212869 0 2686956 1995873605 4199040 2130567168 Process returned 0 (0x0) execution time : 0.011 s Press any key to continue.
A voir également:
- Parcourir un tableau 2D
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
4 réponses
Bonjour,
Il manque tout simplement l'initialisation de ptr. Un simple ptr=multi; avant la boucle for dans le main, et ça devrait marcher.
Cdlt,
Il manque tout simplement l'initialisation de ptr. Un simple ptr=multi; avant la boucle for dans le main, et ça devrait marcher.
Cdlt,
anthony
ah ben oui c'est vrai merci de votre aide
Bah alors, pourquoi créés-tu un tableau de pointeur ptr ? Il ne sert à rien d'autant plus qu'il n'a aucun rapport avec ton premier tableau.
De plus, tu n'as pas besoin d'utiliser une fonction tab2D.
Pour afficher un tableau à deux dimensions, voilà ce qu'il faut faire :
- On fait une première boucle (for) correspondant à la première dimension du tableau.
- On fait une deuxième boucle (for) correspondant à la deuxième dimension du tableau.
- On affiche la valeur => printf("%d\n", tab[i][j]);
Simplement.
J'espère avoir été clair.
De plus, tu n'as pas besoin d'utiliser une fonction tab2D.
Pour afficher un tableau à deux dimensions, voilà ce qu'il faut faire :
- On fait une première boucle (for) correspondant à la première dimension du tableau.
- On fait une deuxième boucle (for) correspondant à la deuxième dimension du tableau.
- On affiche la valeur => printf("%d\n", tab[i][j]);
Simplement.
J'espère avoir été clair.
Oui c'est vrai je n'ai pas besoin de fonction mais bon j'ai décidé de séparer le code pour voir comment passer un tableau 2D a une fonction.
Ce n'est pas un tableau pointeur c'est un pointeur pointant vers un "sous" tableau. Oui si j'enlève les paranthèses sa sera un tableau pointeur mais avec les paranthèse ce n'est pas un tableau pointeur, c'est un pointeur.
ceci est un tableau pointeur:
Je sais qu'il y a plus simple pour afficher les valeurs d'ailleurs j'y suis arriver à les afficher mais ici je veux savoir pourquoi il y a des valeur bizzard dans ce code.
Bah alors, pourquoi créés-tu un tableau de pointeur ptr
Ce n'est pas un tableau pointeur c'est un pointeur pointant vers un "sous" tableau. Oui si j'enlève les paranthèses sa sera un tableau pointeur mais avec les paranthèse ce n'est pas un tableau pointeur, c'est un pointeur.
ceci est un tableau pointeur:
int *ptr[4]
Je sais qu'il y a plus simple pour afficher les valeurs d'ailleurs j'y suis arriver à les afficher mais ici je veux savoir pourquoi il y a des valeur bizzard dans ce code.