POINTEUR aye aye aye

Signaler
Messages postés
33
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
26 mars 2004
-
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
-
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

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
erreur d'éxécution ou de compilation?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
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));
}
Messages postés
33
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
26 mars 2004

merci!!!
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Heu je crois que ce n'est pas *(ptr1++) mais *(++ptr1) non ?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
Je ne pense pas puisue *(ptr1++) vaut *ptr1 et c'est bien ce que l'on veut afficher
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
ha oui c'est effectivement exacte, alors je n'est rien dis, excuser moi !