IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

langage C debutant


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 19
    Points : 9
    Points
    9
    Par défaut langage C debutant
    Bonjour, j'aurais besoin d'aide sur le code d'un programme que je tente de faire.
    Celui ci est censé gérer un stock(fichier texte) d'un magasin
    Ma question est la suivante puis je faire appelle à une fonction lorsque j'implémente une fonction dans un fichier stock.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    STOCK *newStock()
    {
        STOCK *monstock;
        stockNode *noeud=buildstocknode(buildStockItem(buildItem()));
        monstock.first=noeud;
        stockNode *current=malloc(sizeof(stockNode));
        current=monstock.first
        while(current!=NULL)
        {
            current=current.next;
     
     
        }
     
        current=buildstocknode(buildStockItem(buildItem()));    
     
     
     
        return monstock;

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Cette question serait plus appropriée dans le forum C, note.

    puis je faire appelle à une fonction lorsque j'implémente une fonction
    Oui, bien sûr.

    Par contre, ton code contient des erreurs:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    STOCK *newStock()
    {
    	STOCK *monstock;
    	stockNode *noeud=buildstocknode(buildStockItem(buildItem()));
    	monstock.first=noeud; //Usage incorrect de . au lieu de ->, et le pointeur n'est pas initialisé de toute façon
    	stockNode *current=malloc(sizeof(stockNode));
    	current=monstock.first //fuite de mémoire
    	while(current!=NULL)
    	{
    		current=current.next; //Là encore, mauvais opérateur
    	}
     
    	current=buildstocknode(buildStockItem(buildItem()));    
    	//fuite de mémoire aussi, je parie
     
    	return monstock;
    }

    Tu devrais expliquer ce que cette fonction est vraiment censée faire; pourquoi elle inclut ce qui ressemble à un parcours de liste chaînée, etc.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 19
    Points : 9
    Points
    9
    Par défaut langage c
    Désolé je suis débutant que ce soit en c ou sur l'utilisation de ce site.
    Comme vous l'avez remarqué ma fonction NewStock est censé crée une liste chaînée d'un élément "item" et d'un autre "StockItem.
    J'ai annexé un model logique pour que vous ayez une meilleure compréhension de ce que je souhaite faire avec ma fonction.
    En vous remerciant d'avance.model_logique2.pdf

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je suppose qu'il manque un lien de STOCK à STOCKNODE?


    Enfin, avec un tel modèle, la première chose à gérer n'est pas la liste chaînée, mais le tableau dynamique de ITEM dans l'objet STOCK.

    Pire, ce tableau ne peut pas être redimensionnable, car en C redimensionner un tableau peut changer son adresse (et donc, invalider tous les pointeurs vers son contenu).
    Il faut donc:
    • Soit choisir une taille pour le tableau et s'y tenir
    • Soit choisir une autre méthode pour référencer l'ITEM depuis le STOCKITEM (par exemple, un pointeur vers le STOCK et l'index de l'objet dans le tableau)

    De plus, si je comprends bien, on n'est pas censé pouvoir modifier un ITEM depuis le STOCKITEM qui le référence; le pointeur item contenu dans la structure STOCKITEM devrait donc être un pointeur const.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    OK j'ai pris note de vos remarques et je pense qu'il serais plus judicieux de tout recommencer depuis le début.
    Merci beaucoup pour votre aide en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. langage pour debuter
    Par alves1993 dans le forum Débuter
    Réponses: 4
    Dernier message: 28/06/2013, 00h12
  2. [langage] Perl débutant
    Par mrbungle dans le forum Langage
    Réponses: 4
    Dernier message: 10/11/2004, 16h37
  3. [langage] Question débutant compilation PERL
    Par sebbyoguard dans le forum Langage
    Réponses: 5
    Dernier message: 04/09/2004, 19h39
  4. [langage] [debutant]Entree standart
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 02/07/2003, 12h50
  5. [langage] [debutant] expression reguliere
    Par toto_titi dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2003, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo