求求求亮
2019-03-17 11:28
采纳率: 66.7%
浏览 2.2k

如何返回一个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;

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 求求求亮 2019-03-17 14:59
    已采纳

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

    点赞 打赏 评论
  • ysrysrysr 2019-03-17 14:18

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

    点赞 打赏 评论

相关推荐