bonjour, :D
j'ai un code qui part en exception syst�matiquement:
qui m'aidera sera :ccool:Code:
1
2
3 itChunk = pCurrentElement->pListChunk->begin(); pCurrentChunk = *itChunk; itWord = pCurrentChunk->pListWord->begin();
Version imprimable
bonjour, :D
j'ai un code qui part en exception syst�matiquement:
qui m'aidera sera :ccool:Code:
1
2
3 itChunk = pCurrentElement->pListChunk->begin(); pCurrentChunk = *itChunk; itWord = pCurrentChunk->pListWord->begin();
Wow, bonjour le contexte... :roll:
Arr�te de faire le con avec ta gestion m�moire (pointeurs nus l� o� ils ne sont pas n�cessaires, etc.) et ce sera d�j� un bon d�but...
J'ai v�rifoi� avant de poster que les pointeurs avait des valeurs
pour pCurrentElement J'ai d'ailleurs pass� un test qui passe bien
Code:int TypeElement = pCurrentElement->TypeElement;
Dans ce cas, c'est pListChunk qui n'est pas/plus un pointeur valide...
voila la valeur de pListChunk: pCurrentElement->pListChunk = 0xBAADF00D !!! qui n'est pas valide apr�s rectification il a la valeur pCurrentElement->pListChunk = 0x07BAA568
et pCurrentElement a la valeur pCurrentElement = 0x07BAE898 { idElement=-1163005939 idSegSrc=-1163005939 iIdDoc=1 ...}
et pListWord a La valeur pCurrentChunk->pListWord = 0x07BACD80
avec pCurrentChunk = 0x07B9D690
et on plante sur l'instruction que j'ai mis apr�s test sur l'instruction:
Code:pCurrentChunk->pListWord = new std::list<CAnalysedWord*>();
0xBAADF00D => Bad Food => Mauvaise Bouffe.Citation:
pCurrentElement->pListChunk = 0xBAADF00D
Vous envoyez de la merde parce que vous n'initialisez pas vos butins de champs pointeurs, dites merci au Runtime de Debug qui a la courtoisie de vous le montrer.
Vous ne savez pas vous servir de pointeur, N'UTILISEZ PAS DE POINTEURS.
voila la valeur de pListChunk: pCurrentElement->pListChunk = 0xBAADF00D !!! qui n'est pas valide apr�s rectification il a la valeur pCurrentElement->pListChunk = 0x07BAA568
et pCurrentElement a la valeur pCurrentElement = 0x07BAE898 { idElement=-1163005939 idSegSrc=-1163005939 iIdDoc=1 ...}
et pListWord a La valeur pCurrentChunk->pListWord = 0x07BBA3E8
avec pCurrentChunk = 0x07B9D690 qui a comme valeur pListWord = 0x07BBA3E8
J'ai modifi� le code comme suit et je plante sur pListWord->begin()
Code:
1
2
3
4
5
6 int TypeElement = pCurrentElement->TypeElement; pCurrentElement->pListChunk = new std::list<CAnalysedChunk*>(); pCurrentChunk->pListWord = new std::list<CAnalysedWord*>(); itChunk = pCurrentElement->pListChunk->begin(); pCurrentChunk = *itChunk; itWord = pCurrentChunk->pListWord->begin();
�a passe dans la premi�re partie de la partie dans proposition. je vous met le code:
mais �a plante dans la proc�dure de ngrammerCode:
1
2
3
4
5
6
7
8 int TypeElement = pCurrentElement->TypeElement; pCurrentChunk = new CAnalysedChunk(); pCurrentElement->pListChunk = new std::list<CAnalysedChunk*>(); pCurrentChunk->pListWord = new std::list<CAnalysedWord*>(); itChunk = pCurrentElement->pListChunk->begin(); itChunk = pCurrentElement->pListChunk->begin(); itWord = pCurrentChunk->pListWord->begin(); pCurrentElement->TypeElement = objNgramer.NewTypeElement( itWord, pCurrentChunk, pPreviousChunk, pNextChunk, pNext2Chunk);
la valeur de pWord est suspect,m�me si on met un pWord = new CAnalysedWord(); avant l'adresse de pWord est suspect pWord = 0xBAADF00D { ullWordID=0 ullLemmaID=0 wsWord=<valeur non d�finie> ...}
j'ai r�solu ce probl�me en passant le pointeur au lieu de l'iterateur.