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 :

malloc avec strings


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Par défaut malloc avec strings
    Bonjour, je débute en C, je voudrais bien sauvegarder de manière dynamique avec malloc une chaine de caracteres que l'utilisateur entrera, quelqu'un peut il m'aider?C'est pas bien sorcier je suppose mais bon

  2. #2
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    je voudrais bien sauvegarder de manière dynamique avec malloc une chaine de caracteres
    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
     
    unsigned int taille_chaine = 100;
     
    char *chaine = malloc(sizeof(*chaine) * taille_chaine); 
    if (chaine == NULL)
    {
      /*erreur d'allocation mémoire*/
      /*traitement ou non de l'erreur*/
    }
     
    /*Utilisation de ta chaine*/
    ...
     
    /*Libération de la mémoire allouée*/
    free(chaine);

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par seb__
    Bonjour, je débute en C, je voudrais bien sauvegarder de manière dynamique avec malloc une chaine de caracteres que l'utilisateur entrera, quelqu'un peut il m'aider?C'est pas bien sorcier je suppose mais bon
    C'est effectivement pas sorcier du tout, alors soit tu sais le faire, et alors fait le, soit tu ne sais pas et tu relis ton cours de C sur l'allocation dynamique. Dans les deux cas, c'est à toi d'écrire le code et à nous de vérifier ce que tu as posté.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Par défaut
    grd merci homeostasie

  5. #5
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    soit tu ne sais pas et tu relis ton cours de C sur l'allocation dynamique.
    Malheureusement, il y a bon nombre de cours et même de bouquins à ne pas fréquenter en ce qui concerne le C...

    Dernièrement vu à Supélec (oui, c'est bien la grande école) : une matrice déclarée de façon automatique ou via un vecteur de pointeurs auxquels on affecte une adresse retournée par malloc, c'est la même chose.

    Cool.

    Ca ne vous fait pas froid dans le dos savoir que ce sont ces mêmes gens qui forment les ingénieurs de demain ? Moi, ça me laisse sans voix !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Ca ne vous fait pas froid dans le dos savoir que ce sont ces mêmes gens qui forment les ingénieurs de demain ? Moi, ça me laisse sans voix !
    C'est une des raisons qui me pousse à devenir formateur...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    C'est effectivement pas sorcier du tout, alors soit tu sais le faire, et alors fait le, soit tu ne sais pas et tu relis ton cours de C sur l'allocation dynamique. Dans les deux cas, c'est à toi d'écrire le code et à nous de vérifier ce que tu as posté.
    Pour un club d'entraide, c'est une réponse tout à fait à propos.
    Je te déconseille vivement de devenir formateur car les élèves vont fuir tes cours et perdre leur temps.
    Le rôle d'un "expert" est avant tout d'orienter les non experts...
    J'en ai déjà vu beaucoup des "experts"... Tu es un bon exemple à ne pas suivre.

    POUR LA QUESTION:
    le bout de code donne la réponse mais:
    char *chaine = malloc... n'est pas une ligne de C. En effet, en C seule une affectation de constante peut être faite avec une déclaration (comme l'exemple le montre avec int taille_chaine = 100; ). Pas d'appel de fonction durant une déclaration! Certains compilateurs n'accepteront pas.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Si ED était formateur, ce serait lui qui le donnerait, le cours sur l'allocation dynamique.
    Donc, je ne vois pas où est le problème...
    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.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par athoth
    POUR LA QUESTION:
    le bout de code donne la réponse mais:
    char *chaine = malloc... n'est pas une ligne de C. En effet, en C seule une affectation de constante peut être faite avec une déclaration (comme l'exemple le montre avec int taille_chaine = 100; ). Pas d'appel de fonction durant une déclaration! Certains compilateurs n'accepteront pas.
    En tout cas, n'essaye pas de jouer à l'expert, tu n'as pas le niveau...

    Ce code est tout à fait légal, car la variable n'est pas statique.

    Ta remarque concerne les définitions de données statiques où il n'est effectivement pas possible d'appeler une fonction.

    Pour ta gouverne, sache que 'titre' d'expert sur ce forum est donné par le logiciel en relation avec le nombre de posts conservés. C'est tout. Si l'admin décide d'effacer mes posts, je redeviens 'invité occasionnel' et ça ne m'empêchera pas de dormir...

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    En tout cas, n'essaye pas de jouer à l'expert, tu n'as pas le niveau...

    Ce code est tout à fait légal, car la variable n'est pas statique.

    Ta remarque concerne les définitions de données statiques où il n'est effectivement pas possible d'appeler une fonction.

    Pour ta gouverne, sache que 'titre' d'expert sur ce forum est donné par le logiciel en relation avec le nombre de posts conservés. C'est tout. Si l'admin décide d'effacer mes posts, je redeviens 'invité occasionnel' et ça ne m'empêchera pas de dormir...
    Le C ansi est très clair sur ce point. Pas d'appel de fonction lors d'une déclaration.
    Moi je ne joue pas!

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par athoth
    Le C ansi est très clair sur ce point. Pas d'appel de fonction lors d'une déclaration.
    OK. "Chapter and verse ?" comme on dit sur c.l.c.

    http://www.open-std.org/jtc1/sc22/wg...docs/n1124.pdf

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

Discussions similaires

  1. Débutant : Pb avec string et char
    Par SebRs dans le forum C++
    Réponses: 2
    Dernier message: 04/04/2006, 09h35
  2. strlen et strcpy non reconnu avec string.h
    Par wolflinger dans le forum C++
    Réponses: 17
    Dernier message: 21/02/2006, 13h44
  3. [RegEx]Probleme avec String.split
    Par sebastieng dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/02/2006, 21h24
  4. Erreur compilation avec <string>
    Par seal3 dans le forum SL & STL
    Réponses: 9
    Dernier message: 25/08/2005, 20h41
  5. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39

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