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 :

Donner des valeurs à Argc et Argv dans le code


Sujet :

C

  1. #41
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par olivier857
    Bon en fait j'arrive a convertir en char * :

    const char *var0, *var1, *var2, *var3, *var4, *var5;
    int num_site, num_pm;
    long num_dossier, num_carte;
    char num_site_ch[10], num_dossier_ch[15], num_carte_ch[10], num_pm_ch[2];

    // Convertie les numéros en char*
    sprintf(num_site_ch,"%d", num_site);
    sprintf(num_dossier_ch,"%l",num_dossier);
    sprintf(num_carte_ch,"%l",num_carte);
    sprintf(num_pm_ch,"%d",num_pm);

    // Convertie les numéros en string
    num_site_str=num_site_ch;
    num_dossier_str=num_dossier_ch;
    num_carte_str=num_carte_ch;
    num_pm_str=num_pm_ch;

    Mais je n'arrive pas a concaténer les chaine en suite :

    // Début de chaine
    var2="NumSit=";
    var3="NumDos=";
    var4="NumCar=";
    var5="NumPm=";

    //Concaténation avec des débuts d echaine avec les numéros :
    strcat(param[2],num_site_ch); -> ca plante
    var2+=num_site_str; -> ca plante
    ????????


    Voilà j'ai essayé pas mal de chose, mais ca me parait pas propre et compliqué. j'espères que je vais pas vous faire crier.
    Si tu as récupéré param[2] via strdup(), c'est normal, cette dernière a alloué de la mémoire pour le nombre de caracteres (que j'appelle N) de la chaine source + 1 (inexact mais c'est a peu près ça) puis copié la chaine source dedans. Résultat, avec strcat(), le premier caractère de num_site_ch écrase le '\0' de param[2] à la position N, snsuite, tu débordes de param[2] dès le second caractère de num_site_ch et boum.

    Il te faut donc plus d'espace memoire.

    Je ne compte pas les sprintf() qui sont ici susceptibles ici de faire boum aussi.

    A+

  2. #42
    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 olivier857
    Bon alors fesont ca dans l'ordre effectivement.
    Au final ca sera dans un programme en C++.
    Alors tu te trompes de forum... Le C++, c'est à coté...
    Pas de Wi-Fi à la maison : CPL

  3. #43
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Alors tu te trompes de forum... Le C++, c'est à coté...
    En fait non pas vraiment, enfin oui et non, car le truc c'est que effectivement mon code est un fichier cpp, avec une entête de fichier cpp, mais le hic c'est que la pluspart du code présent dedans est du C. Je sais ca peut parraitre bizarre, moi je viens juste me greffer dans une grosse application (j'ai pas la choix) dans laquel y a du C et du C++ et que je ne peu pas modifier. Donc je compte écrire en C dedans, voir un peu en C++ si pour des raisons particulières on me le conseille et compiler avec g++. Sinon il faudrait refaire tout le code de l'application mais je ne peu pas il est trop important.

  4. #44
    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 olivier857
    En fait non pas vraiment, enfin oui et non, car le truc c'est que effectivement mon code est un fichier cpp, avec une entête de fichier cpp, mais le hic c'est que la pluspart du code présent dedans est du C.

    Je sais ca peut parraitre bizarre, moi je viens juste me greffer dans une grosse application (j'ai pas la choix) dans laquel y a du C et du C++
    Dans le même fichier source ? -> poubelle.

    Par contre, il est tout à fait possible d'écrire une application en C++ avec des modules en C. Mais chaque module a les extensions qui vont bien (.cpp, .c) et sont donc automatiquement compilés par les compilateurs adéquates.

    Le cas des interfaces (.h) ést réglé à coup de extern "C" ...

    On ne mélange jamais dans un même source du C et du C++;
    Pas de Wi-Fi à la maison : CPL

  5. #45
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    je pense que c'est correct alors, les modules C et C++ on l'air bien séparé.

    Le seul hic serait donc sur le fichier que je modifie actuellement, ou le code doit être en C++.

Discussions similaires

  1. recupérer des valeurs d'un fichier dans un tableau de string
    Par Kansuke dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 07/04/2008, 13h54
  2. Réponses: 11
    Dernier message: 28/02/2008, 10h44
  3. Réponses: 13
    Dernier message: 27/11/2007, 11h06
  4. Réponses: 3
    Dernier message: 21/05/2007, 15h37
  5. Réponses: 1
    Dernier message: 19/03/2006, 20h52

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