Probeleme de structure

Résolu
Bonjour,
voila j'ai un souci avec mon programme qui me fais sortir des erreurs que j'arrive pa a voir
voila l'erreur

C:\Documents and Settings\perso\Bureau\dossier-c\trouver_peers().c:60: error: expected primary-expression before '.' token
C:\Documents and Settings\perso\Bureau\dossier-c\trouver_peers().c:61: error: expected primary-expression before '.' token
C:\Documents and Settings\perso\Bureau\dossier-c\trouver_peers().c:62: error: expected unqualified-id before '.' token
C:\Documents and Settings\perso\Bureau\dossier-c\trouver_peers().c:63: error: expected unqualified-id before '=' token
C:\Documents and Settings\perso\Bureau\dossier-c\trouver_peers().c:65: error: expected unqualified-id before '.' token
C:\Documents and Settings\perso\Bureau\dossier-c\trouver_peers().c:73: error: expected unqualified-id before '=' token

alors que normalement j'ai bien declarer ma strucutre et tt mes variable
par exemple:
struct peers1{
char ip[8];
char peer_id[40];
int port[4];
peers1 *suivant;
} t, q, tete1;
et l'erreur est itue a ce niveau:p"par exemple"
t=(peers1*)malloc(sizeof(peers1));
tete1=t;
tete1=tete1.suivant;
ca serai tres aimable de votre part si vous pouviez m'aider
merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. Contributeur
    Salut,
    Essaie :
    struct peers1{
    char ip[8];
    char peer_id[40];
    int port[4];
    struct peers1 *suivant;
    } t, q, tete1; 
    

    Si ça marche pas, poste ton code entier et utilise la balise conservation du code (à droite de souligner).
    Cdt
    1. merci d'avoir repondu aussi rapidement
      mais ca marche pa en plus je croix pas que ca es une relation avec le pointeur a l'interieur de la structure
      merci
    2. Contributeur
      @rredondoje croix pas que ca es une relation avec le pointeur a l'interieur de la structure
      En tout cas, c'est bel et bien une erreur, que tu auras tôt ou tard à la compilation. Tu dois mettre le struct.

      Mais affiche ton code, histoire d'avoir une vue d'ensemble ( et n'oublie pas la balise de conservation de code).
    3. @fiddyc le meme que j'ai envoye avant c juste une fonction d'initialisation pour liste c'est tt pour garder la trace de la tete
    4. Contributeur
      @rredondoNon, il n'y a pas tout le code là, il me faudrait depuis le début :
      #include ...
      int main(void){ ...
         etc
         return 0;
      }
      
    5. @fiddyvoici le code j'ai enlever les autre fonction sinon ca ferais bcp
      #include<stdio.h>
      #include<string.h>
      #include<stdlib.h>
      struct peers1{
      char ip[8];
      char peer_id[40];
      int port[4];
      peers1 *suivant;
      } t, q, tete1;
      struct peers2{
      char ip[8];
      char port[4];
      peers2 *suivant2;
      } s, y ,tete2;
      void init();
      int main()
      {
      init();
      }
      void init()
      {
      s=(peers2*)malloc(sizeof(peers2));
      tete2=s;
      tete2=tete2.suivant2;
      q=(peers1*)malloc(sizeof(peers1));
      tete1=q;
      tete1=tete1.suivant;
      }
  2. Contributeur
    tu déclares s, tete1 et tete2 comme des structure et les utilise comme des pointeurs de structure. Forcément, ça ne peux pas aller.
    je suis pas trop bon en C (plutôt C++) mais il ne faut pas spécifier "struct peers1" dans le malloc ?
    1. dsl j'avais oublie d'uiliser les balises sinon c tjr le meme probleme
      error :expected unqualified-id before '=' token
      pour les lignes
      s=malloc(sizeof(struct peers2));
      tete2=s;
      tete2=tete2->suivant2;
      q=malloc(sizeof(struct peers1));
      tete1=q;
      tete1=tete1->suivant
      1. Contributeur
        Les lignes que je t'ai données compilent bien. Donc l'erreur vient d'ailleurs. Mais, comme on n'a pas tout le code, on peut pas t'aider.
        1. slt ca marche kan on met
          s=(peer2*)malloc(sizeof(peer2)); c vrai ,c extra
          merci bcp pour ton aide
          1. Contributeur
            Et bien ce n'est pas normal lol. Tu n'as pas fait de typedef, donc c'est bien struct. M'enfin bref, si ça marche c'est le principal. ;)
        2. j'ai oublie un truc
          cc'etais
          s=(peers1*)malloc(sizeof(struct peers1));
          c'est ce qui marche
          merci
          1. Contributeur
            Ah ouf, je préfère lol. Oui l'oubli peut parfois faire crier le compilateur.