• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            road420

            導(dǎo)航

            <2008年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            指針

            指針高級--<高質(zhì)量編程>

            //  execise2.cpp : Defines the entry point for the console application.
            //

            #include 
            " stdafx.h "
            #include 
            < iostream >
            using   namespace  std;
            // -----------------------------------------------
            void  GetMemory1( char   * p)
            {
                p 
            =  ( char   * )malloc( 100 );
            }

            void  Test1( void )
            {
                
            char   * str  =  NULL;
                GetMemory1( str );
                strcpy(str, 
            " hello world " );
                printf(str);
            }

            // -----------------------------------------------
            char   * GetMemory2( void )
            {   
                
            char  p[]  =   " hello world " ;
                
            return  p;
            }

            void  Test2( void )
            {
                
            char   * str  =  NULL;
                str 
            =  GetMemory2();  
                printf(str);
            }

            // -----------------------------------------------
            void  GetMemory3( char   ** p,  int  num)
            {
                
            * =  ( char   * )malloc(num);
            }

            void  Test3( void )
            {
                
            char   * str  =  NULL;
                GetMemory3(
            & str,  100 );
                strcpy(str, 
            " hello " );  
                printf(str);    
            }

            // -----------------------------------------------
            void  Test4( void )
            {
                
            char   * str  =  ( char   * ) malloc( 100 );
                strcpy(str, 
            " hello " );
                free(str);      
                
            if (str  !=  NULL)
                
            {
                    strcpy(str, 
            " world " ); 
                    printf(str);
                }

            }

            // -----------------------------------------------
            main()
            {
                
            // -----------------------------------------------
                
            // 請問運(yùn)行Test1函數(shù)會(huì)有什么樣的結(jié)果?
                
            //
                
            // 答:程序崩潰。
                
            //
                
            // 因?yàn)镚etMemory并不能傳遞動(dòng)態(tài)內(nèi)存,
                
            //
                
            // Test函數(shù)中的 str一直都是 NULL。
                
            //
                
            // strcpy(str, "hello world");將使程序崩潰。
                Test1();
                
            // -----------------------------------------------
                
            //     請問運(yùn)行Test2函數(shù)會(huì)有什么樣的結(jié)果?
                
            //
                
            // 答:可能是亂碼。
                
            //
                
            // 因?yàn)镚etMemory返回的是指向“棧內(nèi)存”的指針,
                
            // 該指針的地址不是 NULL,但其原現(xiàn)的內(nèi)容已經(jīng)被清除,新內(nèi)容不可知。
                Test2();
                
            // -----------------------------------------------
                
            //     請問運(yùn)行Test3函數(shù)會(huì)有什么樣的結(jié)果?
                
            //
                
            // 答:
                
            //
                
            // (1)能夠輸出hello
                
            //
                
            // (2)內(nèi)存泄漏
                Test3();
                
            // -----------------------------------------------
                
            //     請問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果?
                
            //
                
            // 答:篡改動(dòng)態(tài)內(nèi)存區(qū)的內(nèi)容,后果難以預(yù)料,非常危險(xiǎn)。
                
            //
                
            // 因?yàn)閒ree(str);之后,str成為野指針,
                
            //
                
            // if(str != NULL)語句不起作用。
                Test4();
                
            // -----------------------------------------------
            }

            posted on 2007-07-24 16:48 深邃者 閱讀(127) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久激情亚洲精品无码?V| 久久国产成人精品麻豆| 一本大道久久东京热无码AV| 伊人久久五月天| 久久精品蜜芽亚洲国产AV| 久久99精品国产一区二区三区| 99久久精品无码一区二区毛片 | 中文字幕无码久久人妻| 亚洲日韩中文无码久久| 久久久精品免费国产四虎| 综合久久一区二区三区| 四虎国产精品免费久久5151| 狠狠色丁香久久婷婷综合图片 | 精品久久久久久久久久中文字幕| 少妇人妻综合久久中文字幕| 好属妞这里只有精品久久| 久久成人小视频| 久久久久国产亚洲AV麻豆| 蜜臀久久99精品久久久久久小说| 免费一级欧美大片久久网| 国产精品美女久久久久久2018| 久久久国产99久久国产一| 国产综合精品久久亚洲| www.久久热.com| 久久天天躁狠狠躁夜夜躁2O2O| 久久久久女教师免费一区| 天天久久狠狠色综合| 99久久99这里只有免费费精品 | 99久久婷婷国产综合亚洲| 亚洲精品高清国产一线久久| 久久综合色老色| 亚洲伊人久久综合影院| 怡红院日本一道日本久久| 久久美女网站免费| 久久久久免费精品国产| 国产精品欧美久久久久无广告 | 久久婷婷五月综合成人D啪| 久久久中文字幕日本| 久久强奷乱码老熟女| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 色欲综合久久躁天天躁蜜桃 |