Un pb avec strcat

Fermé
Uzumaki - 23 avril 2007 à 17:43
 Titoo - 26 janv. 2009 à 19:59
salut tt le monde,
g un problème de concaténation de chaines de caractères en C;
voila le problème, g besoin d'une fonction qui me permet de concaténer un nombre variable de chaines de caractères, donc g écris ce code:

char *concat (char *str, ...){
va_list pa;
char *s, *str2=NULL;
char *str1;
size_t size=0;
size += strlen (str);
va_start (pa, str);
while ((str2 = va_arg (pa, char*)) != NULL)
{
size += strlen (str2);
}
va_end (pa);

str1 = (char *)malloc(size+1);
strcat(str1, str);
va_start(pa, str);
while ((str2 = va_arg(pa, char *)) != NULL){
str1 = strcat(str1, str2);

}
va_end(pa);
return str1;
}


dans la compilation ya 0 erreurs
il me génère une exeption dans l'éxécution
je sai que le probleme vient de: str1 = strcat(str1, str2);
mai je sai pas coment le résoudre
si quelqu'un a une solution, ça sera gentil de me la passer :)

1 réponse

Vaut mieux tard que jamais (:>)..


str1 = strcat(str1, str2);

strcat(str1, str2) est suffisant pour concaténer str2 après str1 et renvoyer str1.
Une affectation entre 2 char n'est pas permise je pense.

Rappel :

char *strcat(char *ch1, char *ch2)

Cordialement.
0