我想在C中獲得當前時間(不包括當前日期)。主要問題是當我想用函數來完成時。當我不使用它們時,evertyhing就很好。有人可以告訴我,爲什麼我的代碼只顯示一個小時? (看看附圖)。提前致謝。以C獲取當前時間,功能
#include <stdio.h>
#include <time.h>
#include <string.h>
char* get_time_string()
{
struct tm *tm;
time_t t;
char *str_time = (char *) malloc(100*sizeof(char));
t = time(NULL);
tm = localtime(&t);
strftime(str_time, sizeof(str_time), "%H:%M:%S", tm);
return str_time;
}
int main(int argc, char **argv)
{
char *t = get_time_string();
printf("%s\n", t);
return 0;
}
提示:檢查什麼'sizeof(str_time)'返回。 – Joulukuusi 2013-04-11 09:08:28
不要忘記當你完成它時釋放你的字符串...... – Alnitak 2013-04-11 09:14:09
在不同的註釋中,1)'sizeof(char)== 1'根據定義,你應該刪除乘法,2)你沒有檢查分配是否成功。 – 2013-04-11 09:16:02