probleme de structure [C] - C++ - Programmation
Marsh Posté le 20-10-2002 à 16:51:08
peut etre que si tu postais le main(), on pourrait t'aider un peu plus....
Marsh Posté le 20-10-2002 à 16:51:59
Code :
|
peut etre ?
Marsh Posté le 20-10-2002 à 16:52:00
Sinon, essaie ceci :
Code :
|
Edit : grilled d'une seconde !!!
Mais peut être pas :
chrisbk> notre ami a dit qu'il déclarait noeud dans son main, et toi tu le déclares dans le .h
donc j'ai plus raison que toi
Marsh Posté le 20-10-2002 à 16:53:01
Harkonnen a écrit a écrit : Sinon, essaie ceci :
|
tu es rapide cowboy, mais encore assez
Marsh Posté le 20-10-2002 à 16:54:16
chrisbk a écrit a écrit : tu es rapide cowboy, mais encore assez |
j'ai édité
Marsh Posté le 20-10-2002 à 16:56:24
Bah je fais que renommer la struct comme toi au debut, sauf que j'ai laissé le nom a la fin (aucune idée a quoi il sert celui la, quand je nomme au début, alors bon, je laisse....)
Marsh Posté le 20-10-2002 à 16:58:58
g rajouté le main()
g éssayé les propositions d'harkonnen & chrisbk mais sa change rien
Sa serait pas parce que ma structure contient un pointeur vers une structure du meme type ??
Marsh Posté le 20-10-2002 à 17:12:01
normal
t en C, tu fais deja les declarations, ensuite le code
(et oublie pas le #include "arbre.h" )
Marsh Posté le 20-10-2002 à 17:28:33
chrisbk a écrit a écrit : normal t en C, tu fais deja les declarations, ensuite le code (et oublie pas le #include "arbre.h" ) |
Euhh la je vois pas trop ce que tu veux dire!
P.S: J'avais mis l'include.
Marsh Posté le 20-10-2002 à 17:35:23
tricky a écrit a écrit : hello world
|
Marsh Posté le 20-10-2002 à 17:38:44
nop sa change rien
D'apres le compilateur, le probleme vient du .h
In file included from abr.c:2:
abr.h:6: parse error before `noeud'
Marsh Posté le 20-10-2002 à 17:44:07
C'est une structure autoréférentielle !!!
Vire le typedef :
Code :
|
Marsh Posté le 20-10-2002 à 18:03:25
G éssayé les soluces d'harkonnen et taz@ppc mais sa change rien ! Y a pas de mot clef a mettre quand on utilise une structure "autoreferentielle" ??
Marsh Posté le 20-10-2002 à 18:23:55
Taz@PPC a écrit a écrit : daisolai, movaise habitude de C++
|
putain, c'était ça effectivement !!
moi aussi je me plaçais dans une optique C++ et j'ai pas percuté !
Marsh Posté le 20-10-2002 à 18:30:14
Merci taz@ppc sa fonctionne deja mieu!! (plus d'erreurs dans le .h)
Par contre apparement il n'aime pas les déclarations de ce type:
Code :
|
le compilateur me dit:
abr.c: In function `main':
abr.c:152: parse error before `n7'
abr.c:153: `n7' undeclared (first use in this function)
Marsh Posté le 20-10-2002 à 18:35:39
tricky a écrit a écrit : Merci taz@ppc sa fonctionne deja mieu!! (plus d'erreurs dans le .h) Par contre apparement il n'aime pas les déclarations de ce type:
|
tu déclares bien en début de bloc?
Marsh Posté le 20-10-2002 à 18:38:40
oupssss!!!
en effet c t pas au bonne endroit
En tout cas merci à tous ceux ki on répondu
PROBLEME RESOLU
Marsh Posté le 20-10-2002 à 18:43:54
Taz@PPC a écrit a écrit : cela dit ca dépend de ton compilateur. le C99 n'impose plus les déclarations de variables en début de bloc |
Mon compilateur c gcc 2.95.2 et apparement il supporte pas!
Marsh Posté le 20-10-2002 à 18:46:40
plus ou moins, si tu compiles avec "-pedantic" en C (ou en C++) ca te donne des warnings a propos de l'ancienne norme C89/90
mais gcc 3.2 l'accepte parfaitement.
gcc 2.95 ne supprote pas ceci, mais d'autre aspects du C99 passent sans problèmes
Marsh Posté le 21-10-2002 à 04:56:36
Juste pour dire qu'on a parfaitement le droit d'utiliser le même nom pour la structure et le typedef, en C comme en C++.
Code :
|
Marsh Posté le 21-10-2002 à 10:47:11
Harkonnen a écrit a écrit : putain, c'était ça effectivement !! moi aussi je me plaçais dans une optique C++ et j'ai pas percuté ! |
sclair, ca se perd vite ces bonnes vieilles habitudes du C
Marsh Posté le 21-10-2002 à 10:48:05
Musaran a écrit a écrit : Juste pour dire qu'on a parfaitement le droit d'utiliser le même nom pour la structure et le typedef, en C comme en C++.
|
vi, ca je sais (je fais tjs comme ca), mais pourquoi diable y a t'il deux noms pour une struct ? (eg pourquoi la nommer en fin de def alors qu'elle est deja nommée en debut de def ?)
Marsh Posté le 21-10-2002 à 11:11:05
chrisbk a écrit a écrit : vi, ca je sais (je fais tjs comme ca), mais pourquoi diable y a t'il deux noms pour une struct ? (eg pourquoi la nommer en fin de def alors qu'elle est deja nommée en debut de def ?) |
Ces deux nom ne sont pas equivalents...
Code :
|
defini une srtucture toto, mais pour la referencer il faut faire struct toto, toto seul ne suffit pas (en C)
d'ou le
Code :
|
qui defini titi utilisable sans le struct...
Marsh Posté le 20-10-2002 à 16:49:03
hello world
G un gros probleme:
dans mon main() je déclare plusieurs noeud n1,n2......et je les initialisent.....
Oui mais le compilateur (gcc) il aime pas du tout:
In file included from abr.c:2:
abr.h:6: parse error before `noeud'
quelqu'un a une idée ???
Merci d'avance
Message édité par Tricky le 20-10-2002 à 16:56:34