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.
Configuration: Windows 7 / Firefox 3.5.8
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, -
Euh ... comment te dire ... c'est normal !
Tu comptes faire quoi exactement ? -
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.-
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.
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.
-
-
C'est parce que, à aucun moment, tu ne fais pointer ptr vers le tableau multi.