POINTEUR aye aye aye

djkill55 Messages postés 33 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 mars 2004 - 11 janv. 2004 à 22:03
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 12 janv. 2004 à 19:51
quelqun peut m expliquer pk ce programe ne marche pa svp...???
le but c de remplir une matrice [3][3]a l aide des pointeur, la fct initializ est celle ki va initializer la matrice, et cette fct utilise la fct help pr remplir les ligne de la matrice...
merci

int main()
{
int arr1[3][3];
int *ptr1, i, j;
ptr1=arr1;
Initializ(arr1);

for(i=0; i<3; i++)
{for (j=0; j<3; j++)
printf("\\t%d", *ptr1++);
printf("\\n");
}
}

int Initializ( int arr1[3][3] )
{
int i, *y;
y = arr1;

for (i=0; i<3; i++)
help(*y);
return 0;
}

int help (int *y)
{
int *x, j;
x = y;

for (j=0; j<3;j++)
scanf("%d", (y+j));
return x;
}

6 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 janv. 2004 à 22:45
erreur d'éxécution ou de compilation?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 janv. 2004 à 22:58
Un peu des deux sans doute

Plusieurs choses:

Tes fonctions Initializ et help devraient être void
Tu doit faire à chaque fois attention aux niveaux d'indirection pour tes affectations:
arr1 est de type int** donc *arr1 est de type int*

Voici un version corrigée:

int main()
{
int arr1[3][3];
int *ptr1, i, j;
Initializ(arr1);

for(i=0; i<3; i++)
{
ptr1 = *(arr1 + i);
for (j=0; j<3; j++)
printf("\\t%d", *(ptr1++));
printf("\\n");
}
}

void Initializ( int arr1[3][3] )
{
int i, *y = *arr1;

for (i=0; i<3; i++)
{
y = *(arr1 + i);
help(y);
}
}

void help (int *y)
{
int *x, j;
x = y;

for (j=0; j<3;j++)
scanf("%d", (y+j));
}
0
djkill55 Messages postés 33 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 mars 2004
11 janv. 2004 à 23:01
merci!!!
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
12 janv. 2004 à 19:03
Heu je crois que ce n'est pas *(ptr1++) mais *(++ptr1) non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
12 janv. 2004 à 19:46
Je ne pense pas puisue *(ptr1++) vaut *ptr1 et c'est bien ce que l'on veut afficher
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
12 janv. 2004 à 19:51
ha oui c'est effectivement exacte, alors je n'est rien dis, excuser moi !
0
Rejoignez-nous