• <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

            導航

            <2007年7月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            統(tǒng)計

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            指針

            指針高級--<高質量編程>

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

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

            国产精品久久久久久久久软件 | 要久久爱在线免费观看| 一级a性色生活片久久无| 久久精品国产精品亜洲毛片| 久久九九兔免费精品6| 99久久国产热无码精品免费 | 狠狠综合久久综合中文88 | 久久99精品免费一区二区| 久久久久一本毛久久久| 久久久久久毛片免费播放| 久久精品国产亚洲5555| 97久久婷婷五月综合色d啪蜜芽| 狠狠色综合久久久久尤物| 7777久久久国产精品消防器材| 97久久超碰成人精品网站| 伊人久久大香线蕉AV一区二区| 久久久国产乱子伦精品作者| 亚洲精品高清一二区久久| 国产精品久久亚洲不卡动漫| 精品国产日韩久久亚洲| 久久精品国产69国产精品亚洲| 综合网日日天干夜夜久久| 国内精品久久久久影院网站| 久久精品国产亚洲AV大全| 热99RE久久精品这里都是精品免费 | 99久久精品国产一区二区蜜芽 | 99久久国产热无码精品免费| 人妻无码精品久久亚瑟影视| 久久国产精品二国产精品| 无码人妻久久一区二区三区免费丨| 久久久久国产精品嫩草影院| 狠狠色综合久久久久尤物| 香蕉久久夜色精品国产小说| 久久婷婷五月综合色奶水99啪| 囯产精品久久久久久久久蜜桃| 久久天天躁狠狠躁夜夜av浪潮| 亚洲一本综合久久| 伊人色综合久久天天| 精品国产一区二区三区久久| 国产精品一区二区久久不卡| 久久精品人成免费|