我需要一些帮助与我的C函数。我试图获取当前的CPU时间并将其作为char []返回以供以后使用。我得到的问题是,我没有在正确的地方我的指针/解除引用,我收到编译器警告/错误。我需要做出什么改变才能使其正常工作?函数返回字符[]而不是int
功能:
char time_char[10];
time_t rawtime;
struct tm * timeinfo;
time (&rawtime);
timeinfo = localtime (&rawtime);
int time = timeinfo->tm_yday*1000000 + timeinfo->tm_hour*10000 + timeinfo->tm_min*100 + timeinfo->tm_sec;
sprintf(time_char, "%d", time);
和:与char time_char[] = get_time();
我有什么之前,我的代码移动到某个功能,因为我需要它是这样工作
char *get_time()
{
char time_char[10];
time_t rawtime;
struct tm * timeinfo;
time (&rawtime);
timeinfo = localtime (&rawtime);
int time = timeinfo->tm_yday*1000000 + timeinfo->tm_hour*10000 + timeinfo->tm_min*100 + timeinfo->tm_sec;
sprintf(time_char, "%d", time);
return *time_char;
}
调用函数然后根据需要使用time_char
。
短版本 - 不要。将函数写入预分配数组,如'int get_time(char * out,size_t max_size)' – keltar