c语言time()函数问题

来源:百度知道 编辑:UC知道 时间:2024/06/11 05:53:06
time()函数的定义为:
time_t time(time_t *t);
此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存。
************************
#include<stdio.h>
#include<time.h>
void main()
{
time_t t1;
time_t *t2;
t1=time(0);
time(t2);
printf("The number of seconds since 1.1.1970 is %ld\n",t1);
printf("The number of seconds since 1.1.1970 is %ld\n",*t2);
}
为什么我这么写,编译通过但是怎么运行总是不通过呢??

函数会将返回值存到t所指的内存,那么t至少要先分配内存啊,你这里的t2没初始化,相当于一个无效指针,当然不能用.

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main()
{
time_t t1;
time_t *t2 = NULL;
t2 = (time_t *)malloc(sizeof(time_t));
t1=time(0);
time(t2);
printf("The number of seconds since 1.1.1970 is %ld\n",t1);
printf("The number of seconds since 1.1.1970 is %ld\n",*t2);
}

int main(void)
{
time_t *t2;
double a=time(t2);
printf("%lf",a);
return 0;
}