Probleme de concaténation

cs_korialstraz Messages postés 4 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 2 mai 2011 - 3 mai 2010 à 15:09
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 - 3 mai 2010 à 16:51
Bonjour,
je travaille actuellement en projet sur la liaison serie rs232, partie que j'ai bien comprise (enfin jespere^^), cependant un petit probleme me bloque.
j'essai de concaténer une chaine avec un caractere mais sans succes...
voici mon code:

char *Message;
Message = new char[200];
int i=0x0D;
char *CR;
CR = new char[5];
*CR = static_cast<char>(i);

strcpy(Message, codeFonction);
Message = strcat(Message, CR);

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mai 2010 à 16:49
Fais nous plutot voir la chaine que tu voudrais obtenir.
Exemple: "1Coucou" ou que sais-je d'autre.
Je ne comprends rien à ton code.

*CR = static_cast<char>(i);
Là c'est du grand mystique.

Message = strcat(Message, CR);
Mais 'message' est un pointeur alloué, faut pas le changer sinon tu ne pourras plus désallouer.

Faut te plonger dans un cours de C.

ciao...
BruNews, MVP VC++
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
3 mai 2010 à 16:51
Je comprends pas trop ton code.
char* Message puis un Message = new char[200] ?
pourquoi le new et pourquoi declarer un pointeur avant ?
char Message[200]; c'est pas plus simple ?

puis int i = 0x0D;
...
static_cast<char>(i); ??? O_O
Pourquoi utiliser un int et le static_cast en char ?

Occasionelement je crois que ton probleme viens du fait que tes chaines sont pas null ternimated (\0) et que strcpy se base sur le fait qu'elle le sont.
0
Rejoignez-nous