Conversion unsigned char* (tableau) en char* (string)
Salut à tous !
J'ai un peu honte de poster ce genre de problèmes, mais bon ca fait plusieurs fois que je planche la dessus en vain, donc bon :aie:
Le problème est donc le suivant :
Je récupère une chaîne de caractère sous la forme d'un unsigned char* grace à l'appel d'une fonction (externe, donc non, je ne peux pas passer en char*)
Quand j'affiche les caracteres de la chaine un par un, pas de soucis, ca s'affiche, mais quand je tente de les mettre dans mon char*, il rajoute des caractères speciaux à la fin :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
// strSize = 24 (trouvé dynamiquement)
resultUC = (unsigned char *)calloc(strSize, sizeof(unsigned char));
GetResultUC(resultUC);
strResultString = (char*)malloc(strSize * sizeof(char));
for (t1 = 0; t1 < strSize; t1++)
{
printf("uchar = %c\n", *(resultUC + t1));
// => Affiche "M" puis "o" puis "n" etc. jusque "e"
strResultString[t1] = (*(resultUC + t1));
}
m_ResultString = (char*)malloc(t1 * sizeof(char));
for(i=0 ; i<t1 ; i++)m_ResultString[i] = (int)NULL;
for(i=0 ; i<t1 ; i++)m_ResultString[i] = strResultString[i];
(...)
printf("result = %s\n", mResultString);
// => Affiche "Mon_texte/)&à('$*¤!§" |
Merci de vos éventuelles réponses !