如何返回一个char型数组?

我想写一个获取时间的函数,在通过sprintf()将其以一定形式存在char型数组里,
最后返回这个数组。

char* get_time(void)
{
time_t timer;
struct tm *tn;
char time_buf[200]={};

time(&timer);
tn = localtime(&timer);

sprintf(time_buf, "%d/%d/%d:%d:%d", tn->tm_mon, tn->tm_mday, tn->tm_hour, tn->tm_min, tn->tm_sec);
return time_buf;

}
但是好像不行 , 大佬们能帮我看看出了什么问题吗?

解决了, 是因为他的内存空间在栈中, 执行完此函数后空间被释放,解决方法有两种,
一种是用malloc开辟一个新的空间, 另外就是通过传参解决

只需要返回一个数组的首地址指针,在定义函数的时候用char * func()