Bouffage de mémoire :(

Résolu
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014 - 1 juin 2005 à 03:32
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011 - 1 juin 2005 à 21:43
http://www.cppfrance.com/code.aspx?ID=31739



Le problème se trouve au niveau de la fonction

void
TraitementPacket(
int
param)


Le programme n'arrête pas de bouffer de plus en plus de mémoire quand
il reçoit des données et je sais que c'est au nieau de cette fonction
car quand je la coupe le pompage s'arrête ....

SVP aider moi à trouver le bug, je suis pas un grand connaisseur et c'est peut-être quelque chose de très très simple.


@+





MSN : x_men_40@hotmail.com

6 réponses

cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
1 juin 2005 à 19:50
Je viens de regarder ta source, as tu mis les delete [] de partout ? SendData/MassSendData?

L'algo de réucpération est assez merdique (tu n'as pas pensé à utiliser XML ? ). Je te conseil de le recoder entièrement, et mieux.

Stef

http://www.poppyto.net LE site pour les bassistes
3
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
1 juin 2005 à 21:39
J'ai trouvé l'origine du problème :) Un destructeur qui était mal placé, en dehors de la boucle :)



Merci pour tes conseils [auteurdetail.aspx?ID=26194 poppyto] :) Et d'avoir pris le temps de faire une BA sur le forum ;)

@+





MSN : x_men_40@hotmail.com
3
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
1 juin 2005 à 07:16
Il y a une règle très simple avec new et delete:

1.

Si j'alloue un type
char toto = new toto;
je supprime que ce type
delete toto;

2.

Si j'alloue un tableau de type
char * toto = new char[10];
je supprime le tableau de type
delete [] toto;

http://www.poppyto.net LE site pour les bassistes
0
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
1 juin 2005 à 19:14
C'est ce que j'ai fait et pourtant ....

Le delete[] ne parait pas dans la source posté mais je l'ai fait et ça
rien changé du tout. Dans le cas d'un fonction qui reçoit un pointeur
dans le genre :



int InStr(char *salut);
Je l'appelle en faisait :



InStr("Bonjours");

Faut-il que je tue le char *salut ensuite ?


@+





MSN : x_men_40@hotmail.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
1 juin 2005 à 21:06
Qu'est-ce que le XML vient faire dans tout ça ?

@+





MSN : x_men_40@hotmail.com
0
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
1 juin 2005 à 21:43
>> Qu'est-ce que le XML vient faire dans tout ça ?

Héhé question de principe mon cher ! Un chat ne demande que très peu de ressources réseaux donc l'encapsulation XML est idéale pour ne pas créer un nième protocole...

Voilou, tant mieux si tout marche désormais
Content de t'avoir aidé ^^

http://www.poppyto.net LE site pour les bassistes
0
Rejoignez-nous