不小心竟然自然自己写了个空指针

在练习写程序过程中写下了如下一段代码。

time_t time_t_time = time(NULL);
tm *pTm = NULL;

localtime_s(pTm, &time_t_time);

自己最初的理解是将指针pTm初始化为空指针,然后

localtime_s函数可以将
time_t_time 的值赋给指针
pTm

在运行过程中提示 Exception ptm!=NULL。
很显然
localtime_s的操作是将
time_t_time 的值存储的pTm的内存空间中,而不是让
pTm重新指向
time_t_time的内存地址。所以程序出错。

    tm *pTm = new tm;
    localtime_s(pTm, &time_t_time);

或者

  tm *pTm =NULL;
    tm tm1;
    pTm= &tm1;
    localtime_s(pTm, &time_t_time);

pTm有了内存空间就正确了。

posted on 2014-03-28 23:05  Leadtheway  阅读(338)  评论(0)    收藏  举报

导航