关于strcpy的使用解决思路

关于strcpy的使用
[code=c]
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char name[20] = "hello";
cin >> name;
char* pt = new char[strlen(name) + 1];
strcpy(pt, name); 
cout << pt << endl;
delete [] pt;
return 0;
}
[/code

本人新手!请问为什么我这段代码使用了strcpy函数后,调试时会出现一个警告?怎么解决这问题?要怎么使用才对呢?
------解决思路----------------------

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char name[20] = "hello";
cin >> name;  //此处输入,超出20个字符就会出问题
char* pt = new char[strlen(name) + 1]; //当刚好输入20个字符,strlen就不知道多大了...因为strlen是遇‘\0’结束
strcpy(pt, name);  //strcpy也是遇‘\0’结束的  -----------所以使用strXXX这些函数切记‘\0’     
cout << pt << endl;
delete [] pt;
return 0;
}