#include<iostream>
using namespace std;
#include<cstring>
#pragma warning(disable:4996) ///c++认为strcpy函数安全性不高,所以需要在函数前加上该语句
char* getname();
int main()
{
char* name;
name = getname();
cout << name << " at " << &name << endl;
delete[] name;
name = getname();
cout << name << " at " << &name << endl;
delete[] name;
return 0;
}
char* getname()
{
char tem[80];
cout << "Enter last name:" ;
cin.get(tem, 80); //亦可用getline()读取
cin.get();
char* pn=new char[strlen(tem)+1];
strcpy(pn, tem);
return pn;
}
大致思路是先定义一个getname()函数,该函数返回一个指向输入字符串的指针。在函数里定义一个数组tem用来接收用户输入的字符,可以将这个数组设置的尽可能大,避免装不下,再设置一个动态数组pn来承载tem,最后在主函数中定义指针准备接受函数的返回值。这方法可以大量的节省内存空间