new的问题?
#include<iostream>using namespace std;
char* newfuc(const char*,const char*);
int main()
{
char* pi="perfect ";
char* pj="c++!";
cout<<newfuc(pi,pj)<<endl;
getchar();
return 0;
}
char* newfuc(const char* i,const char* j)
{
char* ptr=new char[strlen(i)+strlen(j)+1]; //[]中的数 不管是多少都能正确输出,为什么? 甚至不定义为数组也能正确输出.
strcpy(ptr,i);
strcat(ptr,j);
return ptr; //不是说 不能返回函数中的局部指针和引用吗? 那为什么这样可以呢? (希望我没记错)
}