fxmzssy 2017-12-13 08:25 采纳率: 100%
浏览 2090
已采纳

time_t和struct tm转换问题

问一个比较基础的代码问题,我写了以下代码

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

int testTime(time_t* time_tmp,struct tm* convertRes){
    convertRes = localtime(time_tmp);
    return 1; 

}
int main(){
    time_t t;
    struct tm* p;
    p = (struct tm*) malloc(sizeof(struct tm));
    t=time(NULL);
    //p = localtime(&t);
    printf("%d-%02d-%02d ",(p->tm_year), (p->tm_mon),p->tm_mday);
  printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec); 
    t = t+20;
    testTime(&t,p);
    printf("%d-%02d-%02d ",(p->tm_year), (p->tm_mon),p->tm_mday);
  printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec); 
  return 0;
}

本想在函数testTime中做一下时间类型转换,但是发现一个问题,此段代码输出结果为:

0-00-00 00:00:00

0-00-00 00:00:00

显然不是我想要的结果,函数testTime没有起作用,但是如果 //p = localtime(&t);这行注释去掉,则输出结果为:

117-11-13 16:05:30

117-11-13 16:05:50

这样结果就是对的,函数testTime就起作用,不是很明白为什么,难道入参有问题吗?希望各位大侠帮忙解惑

  • 写回答

6条回答 默认 最新

  • fuchouzhe 2017-12-13 10:14
    关注

    localtime返回值是一个全局指针,你不用把返回值付给p

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误