您好我正在尝试将 char * 指针复制到 char [] 数组。
这是我到目前为止的代码
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;
}
我想用这样的功能来保存代码。我不想照顾每个分配的内存。我也试过
memcpy(&returnString,string,strlen(string)+1);
以及一些带有 strcpy 和 strncpy 的变体。但以下问题仍然存在:
如果我像这样调用该函数两次:
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);
}
输出是这样的:
abc-test2, abc-test2
我怎么能意识到这一点?
先感谢您!