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
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
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);![]()
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é.Envoyé par seb__
Malheureusement, il y a bon nombre de cours et même de bouquins à ne pas fréquenter en ce qui concerne le C...Envoyé par Emmanuel Delahaye
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 !
C'est une des raisons qui me pousse à devenir formateur...Envoyé par InOCamlWeTrust
Pour un club d'entraide, c'est une réponse tout à fait à propos.Envoyé par Emmanuel Delahaye
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.
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.
En tout cas, n'essaye pas de jouer à l'expert, tu n'as pas le niveau...Envoyé par athoth
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.Envoyé par Emmanuel Delahaye
Moi je ne joue pas!
OK. "Chapter and verse ?" comme on dit sur c.l.c.Envoyé par athoth
http://www.open-std.org/jtc1/sc22/wg...docs/n1124.pdf
Partager