andreiudinca
Messages postés3Date d'inscriptionsamedi 6 mars 2010StatutMembreDernière intervention19 avril 2010
-
19 avril 2010 à 04:20
andreiudinca
Messages postés3Date d'inscriptionsamedi 6 mars 2010StatutMembreDernière intervention19 avril 2010
-
19 avril 2010 à 14:55
Mon problème est le suivant:
J'essaye de faire un programme qui est un peu compliqué...Mais la petite partie qui ne fonctione pas est suposément simple. Le warning que j'ai est le suivante : format argument is not a pointer (arg 3). Je met une partie du code pour que vous voyez...
/*Alors j'ai une struct qui est definie dans un fichier .h
En fait c'est une typedef struct*/
typedef struct
{
// Champs de l'en-tête d'un fichier image
char ch[TAILLE_CHAINE]; // 1ère chaîne du fichier image
int nbColonnes; // nombre de colonnes de l'image du
// fichier image
int nbLignes; // nombre de lignes de
// l'image du fichier image
int max; // valeur maximale des intensités
// dans les trois canaux (RGB)
} EnTete;
typedef struct
{
// Une image
EnTete lEnTete; // l'en-tête du fichier
Pixel tabPixels[MAX_PIXELS]; // les pixels
} Image;
// Le code qui précéde se trouve dans un fichier .h
// Le code qui suit est dans un fichier .c dans lequel j'appele une
// une fonction qui utilise le type Image sur un pointeur.
void lectureImage(char * entree, Image * imageOri, int * err)
{
//...
// les trois prochaines lignes donne l'erreur suivante
//format argument is not a pointer (arg 3)
fscanf(f,"%i", imageOri->lEnTete.nbColonnes);
fscanf(f,"%i", imageOri->lEnTete.nbLignes);
fscanf(f,"%i", imageOri->lEnTete.max);
Avant les trois lignes j'ai un autre fscanf pour imageOri->lEnTete.ch. Elle ne donne aucun Warning. Ou pensez-vous qu'est le problème?
Le imageOri est defini comme un pointeur, alors je ne comprend pas pourquoi le warning. De plus avec l'autre partie de la struct le lEnTere.ch il n'y a aucun problème?!?!?!
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 19 avril 2010 à 10:23
Peut être comme ceci:
fscanf(f,"%i", &imageOri->lEnTete.nbColonnes);
fscanf(f,"%i", &imageOri->lEnTete.nbLignes);
fscanf(f,"%i", &imageOri->lEnTete.max);
pour imageOri->lEnTete.ch. Elle ne donne aucun Warning.
Normal, ch est un tableau, donc un pointeur, ce qui n'était pas le cas des trois précédent ;)