Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
668 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] [ résolu]pbm pointeur et tableau de structures

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] [ résolu]pbm pointeur et tableau de structures

n°882315
mani
Posté le 25-10-2004 à 18:27:39  profilanswer
 

Bonjour, j'ai un petit code qui me pose problème à la compilation. Il s'agit très certainement d'une erreur syntaxique, mais je n'arrive pas à la résoudre.  
Voilà mon code, il s'agit d'une fonction prenant en paramètre un pointeur vers un tableau de paquets, un paquet étant défini avec un typedef struct. Cette fonction lecture lit des lignes d'un fichier de log de firewall.

Code :
  1. static int lecture(FILE* filed, paquet* p, int sizeTab){
  2. int i;
  3. i=0;
  4. while (EOF !=fscanf(filed,"%d-%d-%d %d :%d :%d %s SRC=%s DEST=%s PROTO=%s SPORT=%d DPORT=%d\n",p[i].date.annee, p[i].date.mois, p[i].date.jour, p[i].heure.heure, p[i].heure.minute,p[i].heure.seconde,p[i].action, p[i].IpSrc, p[i].IpDest, p[i].prot, p[i].sPort, p[i].dPort) && (i<sizeTab) )
  5. {
  6. i++;
  7. }
  8. return i;
  9. }


 
et les structures :

Code :
  1. typedef struct{ int annee;
  2.  int mois;
  3.  int jour;
  4.  }Date;
  5. typedef struct{ int heure;
  6.  int minute;
  7.  int seconde;
  8.  }Heure;
  9. typedef struct {Date date;
  10.  Heure heure;
  11.  char action[7]; // REJECT, DROP ou ACCEPT
  12.  char IpDest[16];
  13.  char IpSrc[16];
  14.  char prot[5];
  15.  int sPort;
  16.  int dPort;
  17.  }paquet;


 
 
Forcément, gcc me donne un joli lot de warning à la compilation :

Code :
  1. warning : format argument is not a pointer

et ce pour tous les arguments correspondant à des entiers du fscanf().
 
Pour accéder à l'intérieur de ma fonction lecture aux éléments du tableau, j'ai bien essayé de remplacer les " p[i].date.jour " par des " (p+i)->date.jour ", mais ça fait exactement la même chose.
 
merci pour votre aide.


Message édité par mani le 25-10-2004 à 18:37:02
mood
Publicité
Posté le 25-10-2004 à 18:27:39  profilanswer
 

n°882324
cris56
Posté le 25-10-2004 à 18:31:04  profilanswer
 

passe les adresses à scanf et verifie qu'il extrait bien le bon nombre d'elements du format


Message édité par cris56 le 25-10-2004 à 18:32:43
n°882329
mani
Posté le 25-10-2004 à 18:36:42  profilanswer
 

et oui ! fscanf, il faut lui passer les arguments par adresse ... merci pour ta réponse :D
problème résolu

n°882332
cris56
Posté le 25-10-2004 à 18:39:29  profilanswer
 

oui, en fait on passe l'adresse des arguments, pas les arguments par adresse :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] [ résolu]pbm pointeur et tableau de structures

 

Sujets relatifs
effacer un textarea portant un nom spécial [resolu][Résolu] Problème Dfil Images
[resolu] pb aspell + exec()Resultat dans un tableau (asp)
exporter un csv vers un tableau en vbs[Resolu] Détecter la présence d'un codec MCI MP3
(html) Centrer un tableau dans un tableau...Soucis de pointeur ('fin je pense)
Stockage du résultat d'un POST dans un tableauCroisement de Headers, comment ça marche? [Résolu]
Plus de sujets relatifs à : [C] [ résolu]pbm pointeur et tableau de structures


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR