2 figurers figurers 于 2017.09.09 09:33 提问

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

2个回答

what951006
what951006   Rxr 2017.09.09 11:37
已采纳

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

char* copy(char* p2)
{
    char *str2= new char[10];
    strcpy(str2, p2);
    return str2;
}
figurers
figurers 确实是内存回收问题,但c语言是不能这样创建数组的
2 个月之前 回复
qq_35487883
qq_35487883   2017.09.09 09:53

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

figurers
figurers 是的
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片