Probeleme de structure

Résolu/Fermé
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008 - 18 août 2008 à 11:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 août 2008 à 15:18
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

7 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
18 août 2008 à 11:50
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
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 11:56
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
-1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841 > rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 12:00
je 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).
-1
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
18 août 2008 à 13:00
c 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
-1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841 > rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 13:06
Non, il n'y a pas tout le code là, il me faudrait depuis le début :
#include ...
int main(void){ ...
   etc
   return 0;
}
-1
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
18 août 2008 à 13:42
voici 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;
}
-1
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
18 août 2008 à 13:53
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
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 14:29
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
18 août 2008 à 14:33
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 14:54
slt ca marche kan on met
s=(peer2*)malloc(sizeof(peer2)); c vrai ,c extra
merci bcp pour ton aide
-1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
18 août 2008 à 14:56
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. ;)
-1
rredondo Messages postés 7 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 15:07
j'ai oublie un truc
cc'etais
s=(peers1*)malloc(sizeof(struct peers1));
c'est ce qui marche
merci
-1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
18 août 2008 à 15:18
Ah ouf, je préfère lol. Oui l'oubli peut parfois faire crier le compilateur.
-1