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

  1. #21
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    <TROLL-OU-PAS>

    Citation Envoyé par athoth
    18 ans ça sera déjà bien! Le C avec toutes les extensions de langage n'est plus tout à fait du C d'origine, certe! Mais si on donne des renseignements à un débutant autant commencer par la forme classiquement définie et donner les formes plus subtiles ensuite!
    Pourquoi commencer avec du C K&R ? Si le C a évolué, ce n'est pas pour rien. Si tu veux continuer à rouler en voiture à vapeur, tu as le droit mais ce n'est pas une raison pour contraindre les autres à le faire.

    Citation Envoyé par athoth
    Quant on apprend la physique, on ne commence pas par la mécanique quantique ou la théorie M.
    Oui, c'est vrai. Et quand on apprend la médecine, on commence par apprendre à faire une bonne vieille saignée...faut commencer par les bases...

    Citation Envoyé par athoth
    1) La fonction possède peu de déclaration. Tu forces l'exéctution des initialisateurs à la fin des déclarations... alors pourquoi les garder dans les déclaration ?
    Et pourquoi pas ?

    Citation Envoyé par athoth
    De plus, si la fonction renvoie un char
    int ma_fonction(size_t size)
    Sans commentaire.

    Citation Envoyé par athoth
    et donc que ret est un char,
    int ret = -1;
    Sans commentaire.

    Citation Envoyé par athoth
    avec ton ordre de déclaration tu gaspilles de l'espace dans la pile car les objets sont alignés!
    Premature optimization is the root of all evil
    L'optimisation, c'est au compilateur de s'en charger de nos jours. Ensuite, je veux bien voir le passage de la norme (même celle de 89 si tu veux) qui dit que l'ordre dans lequel les variables sont déclarées dans le code source présume de leur position sur la pile. Tant qu'à faire, j'accepterai aussi de voir le passage qui dit que les variables déclarées dans une fonction sont forcément sur la pile (sur toutes les architectures).

    Citation Envoyé par athoth
    2) Je ne vois pas à quoi sert l'affectation de m à NULL !?
    Parce que c'est une bonne habitude à prendre, d'autant plus quand on débute : tu comprendras l'utilité de la chose quand tu feras une erreur dans un programme et que tu auras, par exemple, deux appels à free() avec le même pointeur...Evidemment, tu ne fais peut-être pas d'erreurs...

    Citation Envoyé par athoth
    Le pointeur n'est de toute façon plus accessible en sortie de fonction!
    Dans cette fonction, telle qu'elle est écrite, certes. Mais qui dit qu'elle névoluera jamais ?

    Citation Envoyé par athoth
    Pour un club d'entraide, c'est une réponse tout à fait à propos.
    Crois-le ou non mais, parfois, un bon coup de pied au c*l, ça aide plus qu'une solution toute faite à recopier.

    Citation Envoyé par athoth
    Je te déconseille vivement de devenir formateur car les élèves vont fuir tes cours et perdre leur temps.
    Preuve ?
    Surtout, n'hésite pas à faire gagner du temps au P.O. en essayant de l'orienter concernant sa question.

    Citation Envoyé par athoth
    Le rôle d'un "expert" est avant tout d'orienter les non experts...
    Exact. Justement, il l'a orienté vers son cours.

    Citation Envoyé par athoth
    J'en ai déjà vu beaucoup des "experts"... Tu es un bon exemple à ne pas suivre.
    Allez-y Maître : montrez-nous la voie.

    Citation Envoyé par athoth
    POUR LA QUESTION:
    le bout de code donne la réponse
    Je n'en mettrai pas ma main au feu : il ne précise pas, dans sa question, qu'une longueur maximale soit définie. Puisque tu es si attaché aux petits détails (ex. : l'ordre des déclarations), pourquoi ne pas participer en proposant une solution utilisant realloc() ? [1]

    </TROLL-OU-PAS>

    Et bienvenue sur Developpez.net

    Cordialement,
    DS.


    [1] - Pourquoi je ne le fais pas ? Parce que je m'adapte au milieu dans lequel je me trouve.

  2. #22
    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 Jean-Marc.Bourguet
    Il est un peu délicat à trouver, il faut prendre la version australienne
    http://webstore.ansi.org/ansidocstor...AS+3955%2D1991
    Merci pour le lien. Dès que j'aurai un petit peu de temps je me pencherai dessus.

    Tout ce que je sais de la norme ANSI vient de la deuxième édition du K&R, et je voulais seulement quelques précisions supplémentaires.

    En ce qui concerne les normes, c'est sûr qu'il est toujours meilleur d'utiliser les dernières, mais le problème réside dans le fait que beaucoup de compilateurs (pour ne pas dire tous) ne les implantent pas totalement, et ça pose donc des problèmes évidents de portabilité... sauf si l'on code pour un OS précis avec un compilateur précis.

    En ce qui me concerne, si je n'étais pas en train de m'éforcer à écrire du code 100% portable (donc ANSI au maximum), je serais en train de coder en C version gcc : j'aime énormément la notion de déclaration de fonction à l'intérieur d'autres fonctions, l'utilisation de blocs comme expressions ou encore les goto calculés... oui, je sais, mais je ne suis pas sectaire sur ce point-là... et puis un goto/continue bien placé permet de faire de grosses économies de code pour des programmes qui ont des branches très imbriquées et/ou complexes.

  3. #23
    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 InOCamlWeTrust
    Merci pour le lien. Dès que j'aurai un petit peu de temps je me pencherai dessus.
    Je ne m'étais pas rendu compte qu'il s'agissait d'un lien commercial... 100$ pour un PDF... je trouve ça assez ridicule que l'on fasse payer des textes qui sont plus vieux que Mathusalem... et encore, si ils étaient imprimés, ça pourrait avoir un sens. Idem pour POSIX : il paraît que la norme est payante !

  4. #24
    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 David.Schris
    <TROLL-OU-PAS>
    Quelle bonne question!

    Citation Envoyé par David.Schris
    Pourquoi commencer avec du C K&R ? Si le C a évolué, ce n'est pas pour rien. Si tu veux continuer à rouler en voiture à vapeur, tu as le droit mais ce n'est pas une raison pour contraindre les autres à le faire.

    Oui, c'est vrai. Et quand on apprend la médecine, on commence par apprendre à faire une bonne vieille saignée...faut commencer par les bases...
    Tu as tout compris à ma remarque, c'est bien!

    Citation Envoyé par David.Schris
    Et pourquoi pas ?

    Sans commentaire.

    Sans commentaire.
    Sans commentaire car au moins E. Delahaye a compris le propos, qui est de remplacer le 'int' par un 'char'.

    Citation Envoyé par David.Schris
    L'optimisation, c'est au compilateur de s'en charger de nos jours. Ensuite, je veux bien voir le passage de la norme (même celle de 89 si tu veux) qui dit que l'ordre dans lequel les variables sont déclarées dans le code source présume de leur position sur la pile. Tant qu'à faire, j'accepterai aussi de voir le passage qui dit que les variables déclarées dans une fonction sont forcément sur la pile (sur toutes les architectures).
    Croire qu'un développeur C n'a pas à se soucier de la machine cible c'est dire au développeur du noyau Linux ou à des déveoppeurs scientifiques qu'ils n'ont pas à inclure de directive de compilation conditionnelle pour s'adapter aux différentes plate-formes.
    Les compilateurs ne peuvent pas optimiser un mauvais code. Et heureusement pour nous, notre esprit est caplable de mieux faire! Donc aidons le compilateur.
    Un codeur qui pense que tous les outils de la Terre lui fourniront toutes les réponses est un naïf!

    Citation Envoyé par David.Schris
    Parce que c'est une bonne habitude à prendre, d'autant plus quand on débute : tu comprendras l'utilité de la chose quand tu feras une erreur dans un programme et que tu auras, par exemple, deux appels à free() avec le même pointeur...Evidemment, tu ne fais peut-être pas d'erreurs...
    Cela décèle vraiment une non maîtrise des objets manipulés! Pitoyable pour du code industriel!

    Citation Envoyé par David.Schris
    Dans cette fonction, telle qu'elle est écrite, certes. Mais qui dit qu'elle névoluera jamais ?
    C'est bien, tu es généreux, tu ajoutes du code d'avance. C'est optimum!

    Citation Envoyé par David.Schris
    Crois-le ou non mais, parfois, un bon coup de pied au c*l, ça aide plus qu'une solution toute faite à recopier.
    Oui, c'est une bonne aide. On ne cherche pas à comprendre et on n'accompagne pas. Va voir ailleurs et reviens quand tu sauras de quoi tu parles. C'est une bonne méthode ça!

    Citation Envoyé par David.Schris
    Preuve ?
    Surtout, n'hésite pas à faire gagner du temps au P.O. en essayant de l'orienter concernant sa question.

    Exact. Justement, il l'a orienté vers son cours.

    Allez-y Maître : montrez-nous la voie.

    Je n'en mettrai pas ma main au feu : il ne précise pas, dans sa question, qu'une longueur maximale soit définie. Puisque tu es si attaché aux petits détails (ex. : l'ordre des déclarations), pourquoi ne pas participer en proposant une solution utilisant realloc() ? [1]
    Moi je ne me prend pas pour le maître du monde. Mais il y a une bonne clique qui ferait mieux de redescendre car il y a beaucoup de sotises sur ce forum!

    Citation Envoyé par David.Schris
    </TROLL-OU-PAS>

    Et bienvenue sur Developpez.net
    Toi t'es un drôle!

    Cordialement,

    athoth.

  5. #25
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par athoth
    Moi je ne me prend pas pour le maître du monde. Mais il y a une bonne clique qui ferait mieux de redescendre car il y a beaucoup de sotises sur ce forum!
    Tu es sévère. Ce forum est, je pense, une bonne aide pour ceux qui rencontrent des problèmes dans les programmes en langage C qu'ils ont à faire dans le cadre de leurs études ou de leur boulot. Nous essayons de ne pas donner de solution 'toute cuite' car, après tout, celà n'apprend rien... et le posteur revient souvent avec un autre problème, en attendant de nouveau un programme prêt à porter.

    Quelques contributeurs de talent participent à ce forum, et Emmanuel Delahaye est l'un d'eux. Il a son style personnel parfois un peu abrupt, certes, mais il est efficace et répond aux questions dans l'esprit du forum : l'entraide. Tu es le bienvenu pour ajouter de la valeur aux fils de discussion, mais, je t'en prie, essaie un style moins 'cassant'.

  6. #26
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    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
    Tout ce que je sais de la norme ANSI vient de la deuxième édition du K&R, et je voulais seulement quelques précisions supplémentaires.
    Effectivement. Ce livre est sorti en 1988. Il est basé sur les brouillons (drafts) de C89/90. Il ne tient donc pas compte des last minute changes de la version officielle.

    A noter qu'il faut aussi tenir compte de l'erratum :

    http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html

  7. #27
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    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
    Mais il y a une bonne clique qui ferait mieux de redescendre car il y a beaucoup de sotises sur ce forum!
    Parfait. On compte sur toi pour apporter les corrections nécessaires. Personne ici ne prétend être infaillible.

  8. #28
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonjour,

    Citation Envoyé par athoth
    Citation Envoyé par DavidSchris
    </TROLL-OU-PAS>

    Et bienvenue sur Developpez.net
    Toi t'es un drôle!
    Je suis peut-être naïf mais je pense qu'il est possible de rester courtois, respectueux, etc même quand on est en désaccord avec quelqu'un. En ce sens, mon message de bienvenue n'avait rien, à mes yeux, de drôle : il était sincère. C'est pour cette raison qu'il était isolé du reste du message qui, lui, était entre des balises "<TROLL-OU-PAS>".
    Manifestement, cette séparation entre deux propos (à l'aide de balises) n'étaient pas suffisamment claire. Par conséquent, je m'efforcerai d'éviter ce type de construction avec toi à l'avenir et m'en tiendrai à l'un ou (exclusif) l'autre de mes propos : le message de bienvenue ou (exclusif) l'imitation (cf. "OU-PAS") d'un "troll" condescendant.

    Cordialement,
    DS.

  9. #29
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Citation Envoyé par David.Schris
    Je suis peut-être naïf mais je pense qu'il est possible de rester courtois, respectueux, etc même quand on est en désaccord avec quelqu'un.

    +1
    franchement, vous allez finir par vous faire modérer sévère en continuant sur cette voie...


    @Emmanuel Delahaye: même si on délestait vos posts, vous garderiez la mention "VIP"
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  10. #30
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    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 gorgonite
    @Emmanuel Delahaye: même si on délestait vos posts, vous garderiez la mention "VIP"
    Merci !

  11. #31
    Membre Expert

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Parfait. On compte sur toi pour apporter les corrections nécessaires. Personne ici ne prétend être infaillible.
    +1
    Mais àmha on va attendre car le monsieur a l'air plus généreux en parole qu'en code

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

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

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