C语言中time函数使用出错

jdf1025 2012-05-14 07:36:15
#include <stdio.h>
#include <time.h> /*包含“time.h”头文件。*/

int main()
{
time_t *p; /*定义一个指向time_t类型变量的指针。*/
time(p); /*取时间,参数是指针p,返回结果到指针的内存单元。*/
printf("Now :%ld\n",*p); /*输出时间。*/
}

运行环境为ubuntu11.04 GNU 。出错段错误!
...全文
667 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-05-15
  • 打赏
  • 举报
回复
#include <stdio.h>  
#include <time.h> /*包含“time.h”头文件。*/
#include <stdlib.h>
#include <malloc.h>

int main()
{
time_t *p; /*定义一个指向time_t类型变量的指针。*/
p=(time_t *)malloc(sizeof(time_t));
if (p) {
time(p); /*取时间,参数是指针p,返回结果到指针的内存单元。*/
printf("Now :%ld\n",(long int)*p); /*输出时间。*/
free(p);
}
}

jdf1025 2012-05-15
  • 打赏
  • 举报
回复
我想知道上面代码为什么会出错段错误。其它方法是可以做到的显示时间的。可以用其它函数也是OK的。怎么修改上面代码可以显示1900到现在时间的总秒数。
jdf1025 2012-05-15
  • 打赏
  • 举报
回复
time_t 是“time.h”头文件中定义的一个数据类型,表示一个时间的秒数,相当于一个长整型变量。
自信男孩 2012-05-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
time_t *p;是个指针,没分配time_t的内存。
[/Quote]
++
要么你定义一个time_t类型的变量,要么定义一个指针并给其分配空间。
jdf1025 2012-05-15
  • 打赏
  • 举报
回复
谢谢!原来是没有分配空间,指针初始化。
#include <stdio.h>
#include <time.h> /*包含“time.h”头文件。*/

int main()
{
time_t s; /*定义一个time_t型时间变量。*/
s= time((time_t*)NULL); /*取当前的时间,参数是一个空指针。*/
printf("Now :%ld\n",s); /*输出时间。*/
}
用这个代码可以得到一样的结果。
qq120848369 2012-05-14
  • 打赏
  • 举报
回复
time_t *p;是个指针,没分配time_t的内存。
liangbch 2012-05-14
  • 打赏
  • 举报
回复
也可以这么用(应该能够在linux使用)


#include <stdio.h>
#include <stdlib.h>

#include <time.h>
int main()
{
char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
struct tm *p;
time(&timep);
p=gmtime(&timep);
printf("%d-%d-%d",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(" %s %02d:%02d:%02d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);


p=localtime(&timep);
printf("%d-%d-%d",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(" %s %02d:%02d:%02d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
}


运行结果:
2012-5-14 Mon 12:07:04
2012-5-14 Mon 20:07:04
liangbch 2012-05-14
  • 打赏
  • 举报
回复
在windows下,time函数这么用;
#include <stdio.h>
#include <time.h> /*包含“time.h”头文件。*/

int main()
{
char timebuf[26];
time_t ltime;
//struct tm today, xmas = { 0, 0, 12, 25, 11, 93 };
errno_t err;

// Get UNIX-style time and display as number and string.
time( <ime );
printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime );
err = ctime_s(timebuf, 26, <ime);
if (err)
{
printf("ctime_s failed due to an invalid argument.");
return 1;
}
printf( "UNIX time and date:\t\t\t%s", timebuf );

return 0;

}
W170532934 2012-05-14
  • 打赏
  • 举报
回复
 
#include <time.h>
#include <stdio.h>
int main(void)
{
struct tm *local;
time_t t;
t=time(NULL);
local=localtime(&t);
printf("Local hour is: %d\n",local->tm_hour);
local=gmtime(&t);
printf("UTC hour is: %d\n",local->tm_hour);
system("pause");
return 0;
}
jdf1025 2012-05-14
  • 打赏
  • 举报
回复
希望能尽快解决,谢谢先!

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧