说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

传递指针的问题

编辑:说三道四文库 发布时间:2018-01-21 05:11
HTML文档下载 WORD文档下载 PDF文档下载
class IOUtil
{
    public:
        //Judge the file exiting or not
        static bool isFileExist(string filename)
        {
                return isFileExist(filename.c_str());
        }
        
        //Judge the file existing or not
        static bool isFileExist(char c[])
        {
            struct stat stat_file;                
            if(stat(c,&stat_file) == -1)
            {                
                return false;
            }        
            return true;
        }
        
        //Get the file modified time
        //static void getFileModifiedTime(const string filename,struct tm *p_countTime)
        //{
        //    getFileModifiedTime(filename.c_str(),p_countTime);
        //}
        
        struct tm* getFileModifiedTime(char c[],struct tm * p_countTime)
        {
            if(!IOUtil::isFileExist(c))
            {
               cout << "File doesn't existing:" << c << endl;
               exit(0);
            }
            struct stat stat_file;    
            stat(c,&stat_file);
            //cout << stat_file.st_mode << endl;
            //cout << stat_file.st_mtime << endl;       
            p_countTime = localtime(&stat_file.st_mtime);
            cout << p_countTime->tm_year + 1900 << "-" << p_countTime->tm_mon + 1<< "-" << p_countTime->tm_mday << " ";
            cout << p_countTime->tm_hour << ":" << p_countTime->tm_min << endl;             
            return p_countTime;
        }
};


int main(int argc,char* argv[])
{
    if(argc !=2 )
    {
        cout << "Invalid argument" << endl;
        cout << "Usage:" << endl;
        cout << "command filename" << endl;
        exit(0);
    }

    cout << "Starting reading the file info:" << argv[1] << endl;
    if(!IOUtil::isFileExist(argv[1]))
    {
        cout << "File doesn't existing" << endl;
    }
    else
        cout << "Find the file" << endl;
        
    struct tm *p_countTime;
    IOUtil iout;
    p_countTime = iout.getFileModifiedTime(argv[1],p_countTime);
    
    cout << p_countTime->tm_year + 1900 << "-" << p_countTime->tm_mon + 1<< "-" << p_countTime->tm_mday << " ";
    cout << p_countTime->tm_hour << ":" << p_countTime->tm_min << endl;                        


}
struct tm* getFileModifiedTime(char c[],struct tm * p_countTime)
这个方法中,如果不return tm*,改为 void getFileModifiedTime(char c[],struct tm * p_countTime)

则 p_countTime在method完成后,会自动清空

但struct tm *p_countTime我是在main中即method outside定义的,为什么传递给getFileModifiedTime时,在method内部分配的地址会无故消失

现在return一个tm指针,这个指针安全吗?

搜狐畅游发布3D游戏引擎Genesis-3D 基于MIT协议开源 传闻微软将收购AOL旗下的Winamp和Shoutcast 【BDTC讲师】大数据时代“掘金机”:百度、360、一淘搜索技术分享 谷歌董事长:审查,将会在十年内消失 50万奖金+天使投资:创维天赐家庭互联网创新大赛开幕 您好﹗我现在也已经把数据取到MSFLEXGRID中了﹐怎幺样才能以报表的格式打印出来?(在线等待) 怎么改程序的图标? 高分 在线等 高手请进 考勤告急200分求教 高分 在线等 高手请进 visio 2003 为什么没有 samples 了?还是因为不是完整版的关系? 在sql语句中如何判断一个字段是空串 100分求一简单句子,在线给分!!!!急急急 帮忙,这个TStrings的问题 我家一个月大约用5吨水 估计一个人每天大约需要多少 一个水桶底部侧面有两根管一根粗水管与一根细水管粗水 离子交换法水处理技术,小(正)反洗的目的1.离子交 离子交换的水处理步骤是什么? 苦杏仁入药加热,其中的氢氰酸是否容易挥发、释放? 你们一个月用水多少吨?我家只有4人,但每月要35吨 为什么水管道流速越大振动越大 怎么测水管的流速 空调水管里的一般流速是多少这样好呢 日本上传视频宣传争议领土主权 韩政府非法行医为何屡禁不止? 彻底根治需要湖南3公务员偷拍县委书记获刑 关键视解放军侦察船抵近夏威夷 为进入第三岛印共领导炫富被开除 印共领导指其不道四大看房线路贯穿杭州地铁线我家厨房的家电都藏在柜子里浙江公安三个月止损5000万元全民推本周杭州商场促销打折非常热闹下沙置业节周末热闹登场愚者王座欲望的传说魔装机神重生之都市炼金师颜扣索溪峪旅游乐业天坑群旅游湘子庙旅游东湖梅园旅游白居寺旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘