Bonjour a tous (enfin plutôt bonne nuit )

Voila, je suis en train de programmer un petit jeu, et je suis embetter par une fonction permettant de charger des informations.

Je n'arrive pas a passer un pointeur de tableau d'une structure que j'ai crée.

Voici la structure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
typedef struct Pnj Pnj;
struct Pnj
{
  char nom;
  int editeur; /*booléen indiquant si on est en mode jeu ou editeur
                 Si c'est éditeur, le pnj ne dois pas apparaitre*/
 
  int x; /*Position du pnj*/
  int y;
 
};
Voici ma fonction principale :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void lancementPartie(SDL_Surface *ecran, int mode)
{
   /*Code*/
 
     Pnj pnj[5];
     Pnj *p_pnj[5]={NULL,NULL,NULL,NULL,NULL};
 
     for(i=0;i<5;i++)
     {
        p_pnj[i]=&pnj[i];
     }
 
     charger_pnj(p_pnj);
/*Code*/
}
Voici le prototype de ma fonction charger_pnj :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
void charger_pnj(Pnj *pnj[]);
Et enfin voici ma fonction charger_pnj :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void charger_pnj(Pnj *pnj[])
{
    FILE *fichier=fopen("pnj.txt","r");
    int i=0;
    if(fichier!=NULL)
    {
        for(i=0;i<5;i++)
        {
           fscanf(fichier,"%s %d %d %d",pnj[i]->nom,pnj[i]->x,pnj[i]->y,pnj[i]->editeur);
        }
    }
    fclose(fichier);
 
}
Mon compilo m'affiche ceci :

fichier.c:324: warning: format argument is not a pointer (arg 3)
fichier.c:324: warning: format argument is not a pointer (arg 4)
fichier.c:324: warning: format argument is not a pointer (arg 5)
fichier.c:324: warning: format argument is not a pointer (arg 6)
:: === Génération finie: 0 erreurs, 4 avertissements ===
Et lorsque je lance mon programme il plante.

Merci d'avance