请教一下程序有何异常,要是异常的话 如何解释

请问一下程序有何错误,要是错误的话 怎么解释?
#include "stdafx.h"
#include <iostream>
using namespace std;

void f2(char *ch)
{
strcpy(ch,"hello");
cout<<ch<<endl;
}

void f1()
{
char *ch = new char(10);
f2(ch);
delete ch;
}

int _tmain(int argc, _TCHAR* argv[])
{

f1();
system("pause");
return 0;
}

------解决方案--------------------
strcpy是将第二个参数里的内容复制到第一个参数里,前提是第一个参数指向的内存足够大。

char *ch = new char(10);                 //这句不是分配大小为10的空间给ch,而是用10去初始化*ch。

------解决方案--------------------
char *ch = new char(10); //分配的一个字符

如果要存储一个字符串的话应该分配多个字符,即数组!如:
char *ch = new char[10]; //分配的一个字符