Encore un Pb de concatenation

cs_psycomel Messages postés 128 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 octobre 2006 - 25 janv. 2004 à 20:15
haned22 Messages postés 3 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 23 mars 2004 - 23 mars 2004 à 14:54
Bonsoir a tous!! je sais kil y a pleins de questions qui parlent des concaténation mais malheureusement on dirait kil n'y a pas mon cas...

Ce que jessaye de faire :
concaténer :
char * Requete="SELECT * from Table where";
avec le contenu d'une autre variable de type CString.

Il n'accepte pas avec strcat. !! %-6
J'ai fait tou les cast possibles , ya toujours une erreur!!

4 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
25 janv. 2004 à 20:55
char * Requete="SELECT * from Table where";

deja c'est mal partie, tu declare une chaine statique et tu ve la concatener, fait plutot

char requete[256]="SELECT * from Table where";
ensuite pour strcat, ta qu'a convertir ton CString en char*
0
cs_psycomel Messages postés 128 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 octobre 2006
25 janv. 2004 à 21:04
Merci . le probleme est résolu . C donc ke j'étais mal partie avec mon Char*. Je te remercie..
Ce que je ne comprend pas c'est kil est sensé être dynamique justement.Donc sa taille devrait pouvoir changer librement. C'est assez étrange.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
25 janv. 2004 à 21:19
arf, attention faut revoir tes cours ;)
char *chaine; ca ve dire que chaine est un pointeur sur char et rien d'autre, il faut lui allouer de la memoire avec malloc pour pouvoir t'en servir comme un tableau de chaine

chaine=(char *)malloc(10*sizeof(char)); ==> tableau de 10 caractere

et quand t'en a plus besoin tu libere ==> free(chaine);
voila ce que c'est que la gestion dynamique

par contre char * chaine="une chaine"; ca n'a rien a voir avec du dynamique car au contraire, ainsi declaré ta chaine sera foutu dans une zone statique ou une tentative d'ecriture peut poser des problemes. c'est pour ca qu'il vaut mieux ecrire

const char *chaine="une chaine";
0
haned22 Messages postés 3 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 23 mars 2004
23 mars 2004 à 14:54
bonjour tout le monde :)
0
Rejoignez-nous