| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1058 人关注过本帖
标题:这段程序用gcc编译可以正常运行,用vc6.0编译就不行
只看楼主 加入收藏
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
这段程序用gcc编译可以正常运行,用vc6.0编译就不行

double djz(void)
{
     struct tm *p,*p1;
     time_t lt,yd1,yd;
     int a;
     double ts;
     time(&lt);
     p=localtime(&lt);
     p1=localtime(&yd1);
     a=p->tm_year;
     p1=localtime(&yd);
     p1->tm_year=a;//本例是今年元旦和现在的时间差值
     p1->tm_mon=1-1;
     p1->tm_mday=5;
     p1->tm_hour=0;
     p1->tm_min=0;
     p1->tm_sec=0;
     yd=mktime(p1);
     ts=difftime(lt,yd);//获取时间差
     ts=ts/(3600*24*7)+1;
     return ts;
}
编译都正常,就是运行时提示该指令的内存不能为written,调试了下显示expression cannot be evaluated,求解!
搜索更多相关主题的帖子: double return 时间差 
2015-12-19 10:17
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:20 
double djz(void)
{
    struct tm *p,*p1;
     time_t lt,yd1,yd;
     double ts;

     time(&lt);
     p=localtime(&lt);

     time(&yd1);
     p1=localtime(&yd1);
     p1->tm_year= p->tm_year;//本例是今年元旦和现在的时间差值
     p1->tm_mon=1-1;
     p1->tm_mday=5;
     p1->tm_hour=0;
     p1->tm_min=0;
     p1->tm_sec=0;

     yd=mktime(p1);

     ts=difftime(lt,yd);//获取时间差

     ts=ts/(3600*24*7)+1;

     return ts;
}

用那么多的变量做什么?
=============================
double get_my_time()
{
    struct tm *tmp;
    time_t lt_now, lt_old;
   
    lt_now = time(NULL);        //获取当前时间
    tmp = localtime(&lt_now);       //取得本地时间结构体

    tmp->tm_mon = 1-1;        //更改其它部分
        tmp->tm_mday= 5;
        tmp->tm_hour= 0;
        tmp->tm_min = 0;
        tmp->tm_sec = 0;

    lt_old = mktime(tmp);        //返回修改时间的长整形数据

    return difftime(lt_now, lt_old) / (3600*24*7) + 1;
}



[此贴子已经被作者于2015-12-19 14:02编辑过]

2015-12-19 13:46
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
一样的,运行时出错!0x004034eb 指令引用的 0x00000014 内存。该内存不能为 written
然后p1指针下的错误
expression cannot be evaluated
2015-12-19 13:59
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
俺也用VC6编译了一下,没有错啊。
运行结果:
50.798274
Press any key to continue
2015-12-19 14:06
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
和gcc得到的结果也是50.xxxxx,两边都编译运行过。
2015-12-19 14:15
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
-------------------------这个是gcc的运行结果
50.799491 //调用你的
50.799491 //调用我的

Process returned 0 (0x0)   execution time : 0.047 s
Press any key to continue.

-------------------------------------------------- 下面是VC6的运行结果

50.799683
50.799683
Press any key to continue
2015-12-19 14:19
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
好像是其他地方错了!
2015-12-19 17:07
快速回复:这段程序用gcc编译可以正常运行,用vc6.0编译就不行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011860 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved