Hello I am trying to copy a char * pointer to a char [] array.
this is my code so far
char * string_add(char * base, char * toAdd)
{
char * string=malloc(strlen(base)+streln(toAdd)+1);
sprintf(string,"%s%s",base,toAdd);
char returnString[strlen(string)+1];
// here comes my problem:
memcpy(returnString,string,strlen(string)+1);
// want to add free(string) here
return returnString;
}
I want to use such a function to save code. I don't want to look after every allocated memory. I also tried
memcpy(&returnString,string,strlen(string)+1);
and some variants with strcpy and strncpy. But following problem persists:
if I call the function twice like:
int main(int argc, char * argv[])
{
char * str1=string_add(argv[1],"-test1");
char * str2=string_add(argv[1],"-test2");
printf("%s, %s", str1,str2);
}
the output is like:
abc-test2, abc-test2
How can I realize this?
Thank you in advance!