C的简单指针的应用遇到的问题

#include
#include
void main()
{
char* p4;
char* p1;

char* copy(char* p2);

char str1[10];
gets(str1);

p1 = str1;

p4=copy(p1);
printf("%s",p4);

}

char* copy(char* p2)
{
char *p3;
char str2[10];

strcpy(str2, p2);

p3 = str2;

return p3;

}

//我这里怎么也搞不清楚错在哪,望解答,谢谢

不好意思,没C币了 T T

问题出在你的copy方法,return 后,str2被回收,试改成这样,存在一问题是内存要及时回收,这样的copy函数几乎没有什么意义,本身有C语言的strcpy且好用,没有必要再封装一次

char* copy(char* p2)
{
    char *str2= new char[10];
    strcpy(str2, p2);
    return str2;
}

你是想复制一个字符串到另外一个字符串么?