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 :

programmation modulaire sur devc++


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 46
    Points : 35
    Points
    35
    Par défaut programmation modulaire sur devc++
    bonjour,
    je suis un debutant, j'utilise Dev-c++ pour programmer en C. là j'assaie de creer des fonctions dans un fichier puis de les utiliser dans un programme.
    Voila ce que j'ai fait et qui ne marche pas:

    1)j'ai creer un fichier toto.c et toto.h dans un dossier titi.

    a) toto.c contient:

    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
    #include<stdlib.h>
    char *concatener(char *ch1,char *ch2)
    {
          char *ch=(char*)malloc(100*sizeof(char));
         int i=0,j=0;
         while(ch1[i])
         {
                      ch[i]=ch1[i];
                      i++;
         }
         while(ch2[j])
         {
                      ch[j+i]=ch2[j];
                      j++;
         }
         ch[i+j]='\0';
         return ch;
    }
    b)toto.h contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifndef H_STRING
    #define H_STRING
     
     
    char *concatener(char *,char *);
     
    #endif

    et quand j'invoque concatener dans un main comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include<stdio.h>
    #include<stdlib.h>
    #include"c:\titi\toto.h"
    main()
    {
          char *t1,*t2;
          gets(t1);
          gets(t2);
          puts(concatener(t1,t2));
          system("pause");
          }
    ça marche pas
    De l'aide

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par lity7
    je suis un debutant, j'utilise Dev-c++ pour programmer en C. là j'assaie de creer des fonctions dans un fichier puis de les utiliser dans un programme.
    Voila ce que j'ai fait et qui ne marche pas:

    1)j'ai creer un fichier toto.c et toto.h dans un dossier titi.
    C'est quoi ces noms à la gomme ? Tu ne peux pas donner un vrai nom qui explique de quoi on parle ? Bien nommer les choses c'est le B.A. BA de l'informatique...
    a) toto.c contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include<stdlib.h>
    char *concatener(char *ch1,char *ch2)
    <...>
    Il manque #include "toto.h" pour la cohérence...

    http://emmanuel-delahaye.developpez....ganiser_source
    http://emmanuel-delahaye.developpez.....htm#organiser
    b)toto.h contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef H_STRING
    #define H_STRING
     
    char *concatener(char *,char *);
     
    #endif
    OK. Bien le H_.
    et quand j'invoque concatener dans un main comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include<stdio.h>
    #include<stdlib.h>
    #include"c:\titi\toto.h"
    Horrible !

    En supposant que "toto.h" est dans le répertoire de développement :
    sinon, indiquer le chemin dans les options du compilateur. (gcc : -I<chemin>)

    int main()
    pointeurs non initialisés
    Horrible ! gets() : cette fonction est un bug, la valeur passée et indéterminée.

    http://emmanuel-delahaye.developpez.com/inputs.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          puts(concatener(t1,t2));
    et si concatener() retourne NULL ? Comment on libère le bloc alloué ?
    ça marche pas
    C'est à dire, en clair ? On est pas devins...

Discussions similaires

  1. [Projet] Programmation modulaire d'un projet.
    Par loverdose dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 18/11/2005, 21h59
  2. Programme fonctionnant sur Eclipse mais pas avec le jar?
    Par kirik dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/02/2004, 13h43
  3. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  4. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum Réseau
    Réponses: 12
    Dernier message: 08/12/2002, 20h36

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