RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 structure et iste chainée

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
calagan
Nouveau membre
Inscrit : 14/02/2007
Messages : 7
Message
#138212
Posté le 12/07/07 à 01:47
bonjour, a tous voici mon problemes pas moyen de faire une saisie clavier via scanf.
voici mes structures:

typedef struct BDF { char type_eau[10]; char temp[3]; int PH; char nom_poisson[15]; struct BDF *suiv; }ST_BDF; typedef struct BDR { char nom_poisson[15]; struct BDR *suiv; ST_BDF *fait; }ST_BDR;


j'utilise ensuite une fonction permettant de faire le chainage (structure BDR)

ST_BDR* insertregle( ST_BDR *r_tete) { ST_BDR *nouvo=NULL; ST_BDR *courant=NULL; nouvo=(ST_BDR*) malloc (sizeof(ST_BDR)); if (nouvo==NULL) { return r_tete; } else { printf("\n\nsaisir poisson:"); scanf("%s",nouvo->nom_poisson);//fonctionne printf("saisir type eau:"); scanf("%s",nouvo->fait->type_eau);//ne fonctionne pas le compilo me refuse l'accés à l'écriture printf("saisir temp:"); scanf("%s",nouvo->fait->temp); nouvo->suiv=NULL; if(r_tete==NULL) { return nouvo; } else { courant=r_tete; while (courant->suiv!=NULL) { courant=courant->suiv; } courant->suiv=nouvo; return courant; } } }


est-ce que quelqu'un a une idée?
j'ai aussi essayé le fgets mais sa me fait pareil.

merci à tous

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#138219
Posté le 12/07/07 à 09:58
Normal, tu na pas initialiser ton pointeur *fait je crois...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

calagan
Nouveau membre
Inscrit : 14/02/2007
Messages : 7
Message
#138221
Posté le 12/07/07 à 11:41
bonjour,
en effet je n'ai pas initialiser *fait mais quand j'écris:

ST_BDR* insertregle( ST_BDR *r_tete) { ST_BDR *nouvo=NULL; ST_BDR *courant=NULL; .......................... }


Pourquoi ça initialise pas ausssi courant->fait à NULL.

peut_être ai-je mal compris parce que je ne sais pas où est-ce que je dois initialiser *fait, dans le main??

merci à tous

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

popol
Membre actif
Avatar de popol
Inscrit : 17/10/2006
Messages : 125
Message
#138234
Posté le 12/07/07 à 14:51
J'ai pas bien compris mais je crois qu'il ne faut pas mettre deux fois ->
il faut mettre que le premier je crois, essaye
scanf("%s",nouvo->fait.type_eau);
__________________________
n'hesitez pas à visiter Mon site et surtout Mon Tutorial C

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#138257
Posté le 12/07/07 à 17:42
Et bien, quand tu crée ton object avec malloc, sa alloue de la memoire pour l'object voulu, il va donc t'allouer 15 octect pour nom_poisson, puis 4 octecs
pour chaqu'un 2 pointeurs, sans les initialiser. donc, pour pouvoir te servir de *fait, il faut soit qu'il pointe sur une variable du meme type, ou que tu en crée une avec malloc(fait, ...), sinon, fait pointe soit sur NULL(0), 0xCDCDCDCD, 0xCCCCCCCC, en fait ca depend de ou et comment ton pointeur a été créé.

J'espere que ca ta aider, a+

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.