[c] Bug affichage valeur du tableau. [Résolu/Fermé]

Signaler
Messages postés
239
Date d'inscription
mercredi 8 octobre 2008
Statut
Membre
Dernière intervention
1 mars 2014
-
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
Bonjour,
Je poste un message sur ce forum afin d'obtenir une réponse à ma question (et si possible une explication) à mon problème. Problème qui est le suivant : je suis en train d'apprendre les tableaux, et lorsque j'essaie d'afficher la valeur d'une case d'un tableau j'ai droit à une erreur du genre : format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’ . Voici mon programme :

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
int tableau[4], i =0;
tableau[0]=10;
tableau[1]=23;
tableau[2]=505;
tableau[3]=8;
for (i = 0 ; i < 4 ; i++)
{
printf("%d \n", tableau[i]);
}
return 0;
}
Voilà, en attente d'une réponse je vous remercie !

3 réponses

Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
3
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 629
Salut,
Dans ton code, il n'y a pas d'erreurs. Je pense que tu dois compiler un ancien code, et non celui-là.
Copie-colle ce code dans une autre feuille et recompile-le. Ca devrait marcher.
En tout cas, si tu déclares tableau avec "int tableau[4];" tableau[i] est bien de type int et non de type int *.

Cdlt,
Messages postés
239
Date d'inscription
mercredi 8 octobre 2008
Statut
Membre
Dernière intervention
1 mars 2014
5
J'ai essayé de faire ce que tu as dis, mais il m'affiche la même erreur. De plus j'obtiens la même erreur lorsque j'essaye d'afficher la valeur d'un pointeur :

#include <stdio.h>
#include <stdlib.h>

int main ()
{
int i = 0;
int *pointeur = &i;
printf("%d \n", pointeur);
return 0;
}
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 629
Cette fois-ci c'est normal.
"pointeur" est de type int* puisque il s'agit d'un pointeur sur un entier.
Dans ce cas, il faut donc mettre : printf("%d \n", *pointeur);

Cdlt,