Problème avec delete

Résolu
bibiteinfo Messages postés 2 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 13 juillet 2005 - 13 juil. 2005 à 17:42
bibiteinfo Messages postés 2 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 13 juillet 2005 - 13 juil. 2005 à 21:04
Bonjour, je suis en train de faire un chat. Je lance mon serveur si je connecte un client, j'ai cette ligne là qui se fait appeler :

m_nomJoueur = CInfoSer.m_Msg_Recu;

m_nomJoueur est une HString, classe de mon cru, CInfoSer.m_Msg_Recu est un char*.

Mon problème c'est que ça plante quand je libère la mémoire, pas tout le temps...

Je me demandais si c'Était à cause de mes threads ou un truc comme ça, j'ai lu que ça pouvait être une erreure entre debug/release version, mais les clients et le serveur sont en debug

void HString::Free()
{
if (m_Allocated)
{
if (m_String)
{
delete [] m_String;
m_String = NULL;
}
m_Allocated = 0;
m_Size = 0;
}
}

/*
* If this ASSERT fails, a bad pointer has been passed in. It may be
* totally bogus, or it may have been allocated from another heap.
* The pointer MUST come from the 'local' heap.
*/
_ASSERTE(_CrtIsValidHeapPointer(pUserData));

C'Est le Asserte qu'il m'affiche quand il plante, et ça ne plante pas à tout coup!!.!!

Merci de votre aide!

1 réponse

bibiteinfo Messages postés 2 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 13 juillet 2005
13 juil. 2005 à 21:04
J'Ai résolu mon bug, je faisais un appel pour crée un tableau avec un pointeur du genre

CInfoServeur *cJoue = new CInfoServeur;

J'ai changé ça pour un tableau directement donc
CinfoServeur cJoue[];

Voili Voilou, si ça peut aider quelqu'un :)
3
Rejoignez-nous