[*]Teste le retour de tes new.
Je l'ai d�ja fait et j'ai non Initialis� sur toutes les valeurs
[*]V�rifie qu'entre la cr�ation de ces variable et l'appel de la condition tu ne modifie pas les variables
je les initialise sur la base de ce qu"elle doivent avoir
Essaye d'utiliser le moins possible new (pr�f�re mon_objet(mes_valeurs_d_initialisation)
je ne sais pas comment faire
mais j'ai essay� de passer par une liste( sans succ�s):
la ListAnalysedWord n'est pas allou�e
pListAnalysedWord = new std::list<stAnalysedWord*>();
j'ai essay� le conseil
pListAnalysedWord = mon_objet(mes_valeurs_d_initialisation);
le compilateur m'a jet�:
1 2
| 1>..\..\..\..\Linguistic\ParserManager\src\ParserManager.cpp(624): error C2065: 'mes_valeurs_d_initialisation'*: identificateur non déclaré
1>..\..\..\..\Linguistic\ParserManager\src\ParserManager.cpp(624): error C3861: 'mon_objet'*: identificateur introuvable |
Je suis donc aller en arri�re.
le r�sultat de l'ex�cution de la liste est:pListAnalysedWord = <valeur non d�finie>
je vous donne l'interface:
void CParserManager::BSplitTag( char* pNextToken, char* pWord, char* pPos, char* pFlex, std::list<stAnalysedWord*>* pListAnalysedWord, unsigned long* ulWordNumber)
je vous donne une partie du code mis � jour:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| len = strlen( pNextToken);
std::string sWord = pNextToken;
int npos = sWord.find( "(");
if( npos != -1)
{
pListAnalysedWord = new std::list<stAnalysedWord*>();
LWord = "";
sFlex = "";
LWord = sWord.substr( 0, npos);
sFlex = sWord.substr( npos+1, len);
LWord += sFlex;
pNextToken = (char*)LWord.c_str();
// il reste à provisionner le résultat de la découpe : (
pNextWord = new stAnalysedWord();
pNextWord->wsWord = L"(";
pNextWord->wsLemma = L"(";
pNextWord->POS = POS_MARK;
pNextWord->ulStart = *ulWordNumber;
pNextWord->ulLength = 1;
pNextWord->iExcluded = 0;
pNextWord->Gender = GENDER_NONE;
pNextWord->iNbr = NBR_NONE;
pNextWord->iPers = PERS_NONE;
pListAnalysedWord->push_back( pNextWord);
} |
Partager