我需要一些幫助與我的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