[c] Bug affichage valeur du tableau.

Résolu/Fermé
niernier Messages postés 239 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 1 mars 2014 - 26 janv. 2010 à 20:11
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 janv. 2010 à 21:59
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 !
A voir également:

3 réponses

b-boybaki Messages postés 160 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 10 juin 2010 3
26 janv. 2010 à 20:38
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
26 janv. 2010 à 20:45
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,
0
niernier Messages postés 239 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 1 mars 2014 5
26 janv. 2010 à 20:51
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;
}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
26 janv. 2010 à 21:59
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,
0