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 :

Probleme perte de mémoire - Chilkat


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut Probleme perte de mémoire - Chilkat
    Bonjour, je suis débutant en c++ et j'éssaye d'utiliser les librairies chilkat Http et CkStringArray, je récupere des parametres situés sur un site internet grace à la librairie Chilkat HTTP et je souhaite les mettres dans un tableau avec la fonction Split de C String et j'ai fait une boucle for pour actualiser les parametres mais mon code à un probleme de perte de mémoire assé important et je ne sais pas comment le régler.
    Désolé si je ne suis pas trop clair, je suis débutant, mais n'hésitez pas à poser des questions !

    mon code : [lien] (j'ai mis les librairies dans le rar avec les sources)
    la doc des librairies Chilkat : http://www.chilkatsoft.com/refdoc/cpp.asp
    des exemples de codes Chilkat : http://www.example-code.com/vcpp/http.asp

    Merci d'avance !
    Chouquette.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Tu fais des appels à new sans faire d'appels à delete.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut
    merci beaucoup pour ta réponse et de t'être intéréssé à mon probleme ! mais ca ne marche toujours pas .. le delete fonctionne pour toutes les variable ParamArray, req, resp, html mais quand je fait un delete [] &http; le programme se compile mais à l'éxécution il me met : Exception non gérée à 0x770459c3 dans Projet.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xe72fc37d.

    void ChilkatSample(void)
    {
    CkStringArray *ParamArray;
    CkHttpRequest req;
    CkHttp http;
    CkHttpResponse *resp = new CkHttpResponse;
    CkString html;

    http.UnlockComponent("Http-TEAMBEAN_3E70D502146I");
    req.UsePost();
    req.put_Path(http_req_path);
    req.AddParam("Identifiant",Identifiant);
    resp = http.SynchronousRequest(url_server,80,false,req);
    html = resp->bodyStr();
    ParamArray = html.split('|',true,true,false);

    ParamArray->Clear();
    req.RemoveAllParams();
    html.clear();

    delete[] ParamArray;
    delete[] &http; // Si je ne met pas delete http le programme fonctionne mais il reste une fuite de mémoire et si je le met, j'ai un message d'érreur
    delete[] &req;
    delete[] resp;
    delete[] &html;

    }

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Appeller delete[] sur un objet alloué sur la pile est un comportement indéfini.
    Si tu fais new, tu appelles delete, si tu fais new[], tu appelles delete[].
    Si tu ne fais ni new ni new[], tu n'appelles rien.

    Les objets sur la pile ont une gestion de durée de vie automatique. Il est d'ailleurs recommandé de tout mettre sur la pile, ou de tout lier à la pile si l'allocation sur la pile n'est pas pertinente.

    On remarquera d'ailleurs que faire "new CkHttpResponse" ne sert ici strictement à rien, puisque resp est changé ensuite.

    Déjà, la bibliothèque avec laquelle tu travailles à l'air d'avoir de sérieux problèmes. Il y est difficile de savoir qui est responsable de l'allocation/désallocation de ressource. Tourne-toi vers le RAII.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut
    Merci ! ça m'a bien aidé, je vais me renseigner sur le RAII !

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il manquerait pas un http.close(); ou un truc du genre ?
    Normalement l'objet devrait conserver la connection ouverte (cf RFCs de HTTP1.1) apres la requête pour recevoir de nouvelles requêtes si besoin...

Discussions similaires

  1. Probleme d'acces mémoire des méthodes
    Par alexandre7g dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 03/08/2007, 10h11
  2. Réponses: 11
    Dernier message: 16/07/2007, 16h33
  3. Perte de mémoire - je ne comprend pas.
    Par pilouface dans le forum C
    Réponses: 12
    Dernier message: 08/02/2007, 16h39
  4. Pertes de mémoire avec Rave
    Par stepschn dans le forum Delphi
    Réponses: 8
    Dernier message: 15/10/2006, 11h18
  5. [C#] probleme de consommation mémoire
    Par xtream dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/06/2006, 13h16

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