Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme perte de mémoire - Chilkat [ Divers / Débutant(e) ] (SuperChouquette)

lundi 4 août 2008 à 14:51:17 | Probleme perte de mémoire - Chilkat

SuperChouquette

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.

lundi 4 août 2008 à 15:00:44 | Re : Probleme perte de mémoire - Chilkat

SuperChouquette

Sinon si vous voici le code contenu dans le fichier rar si vous préférez :

#include <windows.h>
#include <iostream>

#include <../include/CkHttpRequest.h>
#include <../include/CkHttp.h>
#include <../include/CkHttpResponse.h>
#include <../include/CkStringArray.h>
#include <../include/CkString.h>

using namespace std;
char url_server[] = "localhost";
char http_req_path[] = "params.php";
char Identifiant[] = "Identifiant - Test";


CkStringArray *ParamArray;
void ChilkatSample(void)
{
    CkHttpRequest req;
    CkHttp *http = new CkHttp;
    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);

}

int main( void ) {

    for(int i=0;i<100000; i++)
    {
        ChilkatSample();
    }
    system("pause");
}


lundi 4 août 2008 à 15:50:48 | Re : Probleme perte de mémoire - Chilkat

Cyr62110

Réponse acceptée !
Dans ta fonction ChilkatSample, tu ne libére jamais tes variables allouées dynamiquements.
En C++, tu doit utiliser delete.
Ce qui explique ton enorme fuite de memoire.
Bye

lundi 4 août 2008 à 16:18:14 | Re : Probleme perte de mémoire - Chilkat

SuperChouquette

merci, j'ai éssayé mais il me met :

Debug Assertion Failed!

Program:c:\......\Projet.exe
File:dbgdel.cpp
Line:52

Expression:_Block_Type_IS_VALID(pHead->nBlockUse)


voici ce que j'ai fait :

void ChilkatSample(void)
{
    CkStringArray *ParamArray;
    CkHttpRequest req;
    CkHttp *http = new CkHttp;
    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);

    delete[] ParamArray;
    delete[] &req;
    delete[] &http;
    delete[] resp;
    delete[] &html;

}


lundi 4 août 2008 à 16:42:46 | Re : Probleme perte de mémoire - Chilkat

SuperChouquette

j'ai cherché un peu pour ce message d'erreur et j'ai trouvé la réponse ici : http://www.developpez.net/forums/showthread.php?t=89973
mais maintenant j'ai un autre message d'érreur si je fait un delete[] &http; sinon les autres delete[] fonctionne mais quand je l'éffectu sur la variable http j'ai ce message :
Exception non gérée à 0x770459c3 dans Projet.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xe72fc37d.

merci .

lundi 4 août 2008 à 17:21:00 | Re : Probleme perte de mémoire - Chilkat

Cyr62110

Réponse acceptée !
tu n'as pas a utiliser :
delete[] &req;
delete[] &html;
Car ce ne sont pas des variables gérer dynamiquement.
le programme alloue de la place en debut de fonction et la désalloue à la fin sans avoir besoin de la faire.
Sinon je devellope presque uniquement en C donc je ne peut pas plus t'aider.
Désolé.
Bye

lundi 4 août 2008 à 17:44:53 | Re : Probleme perte de mémoire - Chilkat

SuperChouquette

Ok merci beaucoup pour ton aide ! mais j'ai toujours le probleme quand je met un delete[] http; ca me fait toujours la meme erreur et si je ne met pas delete [] http, j'ai une fuitte de mémoire ..

lundi 4 août 2008 à 17:58:45 | Re : Probleme perte de mémoire - Chilkat

SuperChouquette

maintenant ca fonctionne ! merci beaucoup pour ton aide, finalement je n'ai pas fait de delete http j'ai juste fait

    delete[] ParamArray;
    delete[] resp;

et ca fonctionne alors que avant quand je mettait pas delete http ca faisait une fuite de mémoire, maintenant je le met pas ca fait plus rien ! merci beaucoup tu m'a vraiement bien aidé !

lundi 4 août 2008 à 18:29:02 | Re : Probleme perte de mémoire - Chilkat

SAKingdom

Membre Club
Réponse acceptée !
Pour libérer une classe on utilise delete sans []

delete ParamArray;
delete resp;
delete http;

C++ (@++)


lundi 4 août 2008 à 21:04:40 | Re : Probleme perte de mémoire - Chilkat


Cette discussion est classé dans : probleme, http, perte, mémoire, chilkat


Répondre à ce message

Sujets en rapport avec ce message

Perte de mémoire [ par glipper ] Bonjour,j'aimerais comprendre pourquoi lorsque je fais un programme qui fait de grosses operations (scan du disque par exemple), une fois le programme Probleme de mémoire, impossible à vider... [ par Guizmo95 ] Bonjour, Voilà mon problème : J'ai le code suivant : char *buffer; sprintf(bu probleme urgent svp !!! [ par morgandetoi06 ] voila j ai fait un petit programme que j ai posté :http://www.cppfrance.com/code.aspx?ID=18814quand je le compile sous borland ça marche tres bien, ma Probleme d'allocation de mémoire dynamique (malloc/free) [ par PhantomPowaa ] Bonjour,J'ai un petit probleme avec les fonctions malloc et free dans certains de mes programmes. Apparement le malloc s'effectue correctement, mais a Limiter la mémoire utiliser par ses programmes [ par Arto_8000 ] Présentement je suis entrain de dévelloper un mini jeux de plateforme du genre Mario avec SDL. Le jeux fonction très bien sauf que j'ai remarquer qu'i HTTP, SQUID, SOCKET !!!! [ par let_me_in ] bonjour tout le monde, je voulais faire un proxy sans se casser trop la tete alors j'ai bricolé un peu, j'ai lancer squid, j'ai lancer mon application Probleme ACCESS et Champ OLE [ par rubix2 ] bonjour,j'ai besoin de visualiser le contenu d'un champ d'une table ACCESS. Le champ est de type Objet/OLE et quand je visualise la table en mode feui gcc désactiver l'alignement mémoire des strucutre [ par Daimadoshi ] bonjour a tous, désactiver l'alignement mémoire des strucutres  car je doit utiliser une structure dont les champs doivent etre dans un certain ordre HELP ! probleme dans une fct pour compression [ par ryoussef19 ] Bonjour, j'ai un probleme vraiment urgent !voila je cherche une fonction qui me permet de compresser un fichier en un fichier , j'utilise les deux fo probleme de calcul [ par beny100 ] salut a tous j'ai un probleme en langage c.quand je fais pow(35786,2)=1280637824le resultat escompté est different du resultat fournit avec une calcul


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.