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

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 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿