Problème de structure de structure en C - C - Programmation
Marsh Posté le 12-02-2004 à 18:08:44
essaye en mettant
Code :
|
au lieu de
Code :
|
(j'imagine que struct tm est déclaré dans time.h ?)
Marsh Posté le 12-02-2004 à 18:40:43
Code :
|
Marsh Posté le 12-02-2004 à 18:45:08
déjà mets un vrai motif bien compliqué plutot que RDV_H
le FILE* déclaré comme ça, ça va poser des problèmes
char [100] ne sert à rien, const char* serait peut être mieux senti
sinon chez moi ça marche
Marsh Posté le 12-02-2004 à 18:46:50
ben je veux bien croire que ca marche chez toi mais est ce que ca peut venir de mon compilateur ?
Marsh Posté le 12-02-2004 à 18:50:57
vire le 2ème include <time.h>, celui du .c peut-être ?
zarbi tout de même ...
c'est quoi ton compilo ? plateforme ?
Marsh Posté le 12-02-2004 à 19:16:18
ReplyMarsh Posté le 12-02-2004 à 19:23:34
je vous remercie, je vais une petite sieste et je regarderais ca avec un nouvelle oeil dans 2 heures, a mon avis, j'espere que je verais ce qui ne vas pas
Marsh Posté le 12-02-2004 à 19:50:04
En fait pour faire une struct contenant une struct du même type il faut faire :
Code :
|
Edit:
Bon c'est pas ça, je cherche
Edit2: J'avais rien compris
Marsh Posté le 12-02-2004 à 20:00:52
euh non, ton truc ne fait rien du tout, y a juste un typedef en pkus, et toujours 2 pointeurs
Marsh Posté le 12-02-2004 à 20:25:43
taz a écrit : euh non, ton truc ne fait rien du tout, y a juste un typedef en pkus, et toujours 2 pointeurs |
Exact je me suis planté
Je cherche ds mes anciens cours, il me semble que ça ressembait à ce que j'ai donné, avec un typedef et sans le pteur biensur...
Marsh Posté le 12-02-2004 à 20:33:48
taz a écrit : la vérité est que ce code ne pose aucun problème |
Oua pt1 je viens de comprendre
Je croyais qu'il voulait faire compiler ça :
Code :
|
(et en fait c'est pas possible, il faut un pteur sur rdvAgenda, j'ai trouvé ds mon vieux cours )
Bon j'arrête la moquette
Marsh Posté le 12-02-2004 à 20:36:06
Bon alors, maintenant que j'ai compris, si tu mets :
Code :
|
juste avant de déclarer ta strcuture struct rdvAgenda, ça marcherait pas ?
Marsh Posté le 12-02-2004 à 20:38:38
Dav Vador a écrit : Bon alors, maintenant que j'ai compris, si tu mets :
|
pas besoin de foward déclaration, y a pas de référencement cyclique
Marsh Posté le 12-02-2004 à 20:41:52
taz a écrit : pas besoin de foward déclaration, y a pas de référencement cyclique |
Ben ouais mais là le compilo voit pas la struct apparement
Donc c'était pour le forcer à la reconnaitre...
Mais doit y'avoir une couille ailleurs car ça devrait marcher normalement
Marsh Posté le 12-02-2004 à 20:45:54
taz a écrit : d'où mes premiers conseils et ma dernière question |
En effet
Sinon pour tester si le .h est bien inclus, y'a qu'à marqué un truc à la con qui compile pas en plein milieu et il sera vite fixé...
Marsh Posté le 12-02-2004 à 20:52:34
taz a écrit : ou juste regarder la sortie de cpp comme déjà indiqué |
C'était juste pour donner une autre méthode
Bon j'arrête mes conneries, ça vaudra mieux...
Marsh Posté le 12-02-2004 à 21:56:33
Ca marche chez mon pote, c surement mon compilateur...
Je sais ps de tout de facon je vais réinstaller mon système donc je verais ca apres.
Par contre, taz ? porquoi il ne faut pas que que ke déclare FILE * ?
Comment je peux faire autrement ?
Marsh Posté le 12-02-2004 à 22:03:02
il faut que tu le déclares extern dans ton .h et que tu en face l'allocation (automatique dans un .c)
Marsh Posté le 12-02-2004 à 22:04:41
bah je croyais que ca se faisait automatiquement pour un FILE ?
et le externe servirait a ce qu'il soit visible des autres fichiers ?
et je lui alloue quoi dans ses cas la ?
Marsh Posté le 12-02-2004 à 22:06:26
ben vas y, laisse comme ça, compile ton projet, et quand t'auras inclus plusieurs fois ton fichier, tu reviendras m'en parler quand t'auras des erreurs de link
Marsh Posté le 12-02-2004 à 22:08:01
Nan mais je veux bien te croire car j'ai des pb maintenant que j'ai plusieurs fichiers, mais qu'est ce que je lui alloue ?
Marsh Posté le 12-02-2004 à 22:09:48
ben tu fais une allocation automatique, c'est dire rien si ce n'est pas déclarer extern puis la définir ailleurs dans un .c
Marsh Posté le 12-02-2004 à 22:14:19
déclaration
extern int globale;
définition
int globale = <valeur initiale>;
Marsh Posté le 12-02-2004 à 22:16:27
déclaration :
extern FILE *monFichier;
définition :
monFichier = fopen(nomFichier,"r+" );
ca c bon normalemnt alors ?
Marsh Posté le 12-02-2004 à 22:19:26
Maintenant ca compile plus, j'ai plein de
undefined reference to `monFichier'
Marsh Posté le 12-02-2004 à 22:21:53
khyna a écrit : Maintenant ca compile plus, j'ai plein de |
le copier/coller c'e'st pas ton truc toi ...
Marsh Posté le 12-02-2004 à 22:25:37
c ironique ou tu veux que je te mette ce que le compilateur m'hurle :
Citation : /home/khyna/tmp/ccOksf2H.o(.text+0x3e): In function `readDateDebut': |
Marsh Posté le 12-02-2004 à 18:04:24
Bonjour,
J'ai un problèmes de structure de strucure dans mon code.
Qd je veux faire une structure en utilisant une autre structure ca marche pas.
Qd je fais exactement la meme chose en précisant que c un pointeur ca marche.
Je vois pas d'ou vient le probleme.
Voici le code qui me met une erreur a la compilation :
Voici l'erreur :
agenda.h:9: error: field `leRdv' has incomplete type
Voici le code qui marche :
Ce dernier code marche.
Je me doit de signaler que qd je met en dure ( sans utiliser l'include "rdv.h" ) la structure rdv :
et benh tout marche bien ...
Dons je pense que c'est un probleme de lien entre fichier mais, je ne voit pas pourquoi il reconnait un pointeur d'un type alors qu'il ne reconnait pas ce pointeur de type.
Voila, merci de me dépanner
Message édité par Khyna le 12-02-2004 à 18:05:45