Oh mon dieu, ce code est une horreur de "C compil� en C++", avec un m�lange de char* et de new/delete et nombre de ces derniers devraient en fait �tre delete[] vu que c'est de l'effacement de tableaux.
Et en plus, il y a des variables globales (comme OldBuffer).
Mais au moins, j'ai pu confirmer que du moins pour StartStateTagger(), le premier param�tre est un tableau de numSen cha�nes de caract�res; la fonction ne modifie pas les cha�nes point�es, mais modifie les pointeurs en les rempl�ant par des pointeurs de buffers allou�s devant �tre d�sallou�s avec delete[] (ou peut-�tre free(), d�pendant du contenu de la fonction perl_split()).
Quant � la fonction FinalStateTagger(), elle est carr�ment � jeter, car elle retourne un pointeur vers une variable locale!
Mais l� aussi, buf est cens� �tre un tableau de numSen cha�nes de caract�res, et cette fonction-l� ne modifie jamais ni les cha�nes point�es ni les pointeurs (le param�tre devrait donc �tre d�clar� comme char const * const *buf, surtout si le code est compil� en C++ ou compil� sous Visual Studio).
...Mais franchement, � ta place je n'utiliserais pas ce code, il est horrible, buggu�, peu comment� et sa gestion de la m�moire est indigne du langage C++. N'importe qui "connaissant" vraiment le C++ s'en serait rendu compte au premier coup d'�il. Mon conseil: Balance ce code � la corbeille, vide-l�, apprends C# (qui pardonne mieux les erreurs que C ou C++) et cherche sur le web un Brill Tagger en C#, �a marchera beaucoup mieux.
...Ou un Brill Tagger en vrai C, ou en vrai C++. N'importe quoi sauf cet hybride impie.
Partager