【发布时间】:2019-03-08 02:12:34
【问题描述】:
我在main上写了这段代码,它工作得很好,但是当我试图把它放在函数或类方法中时,它不起作用,为什么? 同样,当我调试此代码时,似乎没有编译 time_t 和 struct tmp。
const char* getFormat() {
time_t rawtime;
struct tm * timeinfo;
char buffer[80];
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer, sizeof(buffer), "%d.%m.%Y H%:%i", timeinfo);
return buffer;
}
【问题讨论】:
-
如果这段代码自己运行良好,那么导致问题的函数或类在哪里?如果没有完整的上下文,我们无法为您提供帮助。
-
@Yucel_K 在函数中此代码不起作用,但是当您在主上提取代码时,它可以工作
-
不要发布有效的代码,发布无效的代码。
-
你返回一个指向局部变量
buffer的指针。buffer在函数退出后立即变为无效,因此在调用函数中不能指望它。而是考虑在调用函数中声明缓冲区并将其传递给getFormat -
Recap:返回指向在调用者可以使用时超出范围的局部变量的指针。两个拼写错误:
H%->%H和%i->%I修复这些错误,你的函数应该可以工作了。