Poster une réponse à un sujet: [C++] Utilisation de la mémoire
    Attention, ce sujet est un sujet ancien (7396 jours sans réponse)
    Gras [b]Texte[/b] Italique [i]Italique[/i] Souligné [u]Souligné[/u] Barré [strike]Barré[/strike]
    Courriel [email=nobody@nobody.org]Nom[/email] Lien [url=http://www.website.com]Texte[/url] Ancre [anchor]Nom[/anchor] Image [img]http://www.website.com/image.jpg[/img] Insérer une image en provenance du site
    Aligné à gauche [align=left]Texte[/align] Centré [align=center]Texte[/align] Aligné à droite [align=right]Texte[/align] Toute la largeur [align=justify]Texte[/text]
    Couleur [color=#000000]Text[/color] Mise en forme [highlight=pascal]Texte[/highlight] Widgets Emoticons :code: [:code] Convertisseur HTML vers BBCode Convertisseur Word vers BBCode
    Prévisualisation Vérification de l'orthographe

    Copier Coller Couper Tout sélectionner
    Tout effacer Insérer la date Insérer l'heure Insérer la date et heure Insérer votre IP
    Liste [list=square][item]BlaBla[/item][/list] Liste Numérotée [list=decimal][item]BlaBla[/item][/list]
    Citation [quote=name]Texte[/quote] Spoiler [spoiler]James est le meurtrier![/spoiler]
    Tout en majuscules [uppercase]Texte[/uppercase] Tout en minuscules [lowercase]Texte[/lowercase] l33t [l33t]Je suis un nerd[/l33t] Texte en indice [sub]Texte[/sub] Texte en exposant [sup]Texte[/sup] Taille du texte [size=8]Texte[/size]
     
    ovh
    Je suis d'accord avec ovh pour l'allocation de la mémoire mais mon petit ovh où mets-tu le '\0' ?? C'est strlen(row[2]+1); :oh:

    Oups c'est exact :tinostar:
    Longtemps que je n'ai plus manipulé de char* désolé :joce:

    blieataer> en effet, en C++ il existe une classe std::string et les fonctions qui vont bien pour manipuler les chaînes facilement :
    #include <iostream> // oui, sans .h !
    using namespace std;
    string toto;
    toto = "turlutte";
    cout<<toto<<endl;


    Et le lien qui va bien :
    http://c.developpez.com/faq/cpp/?page=strings :dawa:

    L'avantage aussi c'est qu'avec ça tu peux facilement les trier, en utilisant les divers types de classes listes standards :oh: Hé oui, le C++ c'est puissant quand on l'utilise bien :petrusbranle:

    Bon codach' :fete:
    blietaer
    MA-GNI-FIQUE!!

    merci
    heuuu oki pourle printf() je pourrais metre des >> cout...mais vraiment si grave?
    et pour le char* si c'est une heresie, je veux bien un lien pour me punir.

    encore merci
    Altar
    Je suis d'accord avec ovh pour l'allocation de la mémoire mais mon petit ovh où mets-tu le '\0' ?? C'est strlen(row[2]+1); :oh:
    ovh
    Des char* et des printf dans un programme C++ :totoz: :ciler: :fumer:

    this->zone_depart = row[2];

    Faudrait pas plutôt faire un strcpy + initialisation mémoire ? :figti:
    this->zone_depart = new char[strlen(row[2])];
    strcpy(this->zone_depart, row[2]);
    blietaer
    oublions l'aspect des tables et des DB..

    Dans le main:

    Autocar *bus = new Autocar[NOMBRE_DE_BUS_MAX];
    Pat *patrouilles = new Pat[NOMBRE_DE_PAT_TOTAL];
    init_all(bus, patrouilles);


    "int init_all(Autocar *bus, Pat *patrouilles)" est juste une fonction qui va faire des "for(;;)" pour remplir les objects avec des données extraites de MySQL (ou autre DB).
    Et elle le fait bien...:

    this->numero_bus = numero;
    this->capacite = strtol(row[4],&pEnd,0);
    this->zone_depart = row[2];
    this->CDZ_arrive = strtol(row[3],&pEnd,0) ;


    Ma classe autocar:
    class Autocar {

    public:
    int numero_bus;
    int capacite;
    char *zone_depart;
    int CDZ_arrive;
    int places_restantes;
    char *troupes_presentes[10][5];
    int nbre_troupes_presentes;

    Autocar(void);
    ~Autocar(void);
    int init_autocar(int numero);
    int ajouter_patrouille(int pat_id);


    };


    Par contre, une fois l'object inspecté dans main(),

    printf("le bus #3 part de %s avec %d personnes vers %d\n",bus[3].zone_depart, bus[3].capacite,bus[3].CDZ_arrive);
    --> le bus #3 part de def avec 72 personnes vers 3

    et "def" devrait être plutôt une lettre majuscule (ici en locurence "W")



    Pourquoi?

    espérons que j'ai été clair...
    antp
    Ouais en même temps .net 1.1 est entièrement en iostream :smile: Faut vivre avec son temps.

    Ça me fait une belle jambe, le seul code C++ que j'ai à faire au boulot c'est en Visual C++ 5 et Builder C++ 5 :ddr555:
    Puis ça ne change rien au fait que JE trouve que les chaînes Delphi sont plus pratiques. Qu'elles le soient ou non ça je n'en sais rien, c'est un avis personnel subjectif émis par moi-même :oh:
    zion
    antp for president :oh:

    Y a que pour l'unicode ou il faut implicitement transformer le type si tu veux pas que ca foire trop :joce:
    Altar
    Ouais en même temps .net 1.1 est entièrement en iostream :smile: Faut vivre avec son temps.
    antp
    Ouais enfin tout le GUI de C++Builder est en AnsiString, tout celui des MFC en CString, donc quand tu veux utiliser des std::string (parce que par exemple une lib en a besoin) tu dois forcément faire des conversions.
    Sinon j'ai trouvé l'utilisation de tous ces types de chaînes moins pratiques que celles de Delphi, même sans les problèmes de conversion d'un type à l'autre...
    Altar
    Et bien le rapport c'est que c'est le seul moment où j'ai vraiment eu besoin d'utiliser des char* c'est lors du développement réseau :wink: Pour le reste on trouve facilement des API C++ qui utilise directement les iostream de c++ (pas forcement comme il faudrait, j'ai vu pas mal d'api qui recevait le char* et qui le castait en string mais au moins ils ont fait l'effort de faire une interface).
    Catégorie:  






    Ada
    CSS
    Cobol
    CPP
    HTML
    Fortran
    Java
    JavaScript
    Pascal
    Perl
    PHP
    Python
    SQL
    VB
    XML
    Anon URL
    DailyMotion
    eBay
    Flickr
    FLV
    Google Video
    Google Maps
    Metacafe
    MP3
    SeeqPod
    Veoh
    Yahoo Video
    YouTube
    6px
    8px
    10px
    12px
    14px
    16px
    18px
    Informaticien.be - © 2002-2026 Akretio SRL  - Generated via Kelare Haut de page