• <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>
            posts - 62,  comments - 19,  trackbacks - 0

            試題 4

            void GetMemory( char *p )
            {
            ? ?p = (char *) malloc( 100 );
            }

            void Test( void )
            {
            ? ?char *str = NULL;

            ? ?GetMemory( str );
            ? ?strcpy( str, "hello world" );
            ? ?printf( str );
            }
            試題 5

            char *GetMemory( void )
            {? ?
            ? ???char p[] = "hello world";? ?? ?

            ? ???return p;??
            }
            void Test( void )
            {? ?
            ? ???char *str = NULL;??

            ? ???str = GetMemory();? ?
            ? ???printf( str );? ?
            }

            試題 6
            void GetMemory( char **p, int num )
            {
            ? ???*p = (char *) malloc( num );
            }
            void Test( void )
            {
            ? ???char *str = NULL;

            ? ???GetMemory( &str, 100 );
            ? ???strcpy( str, "hello" );
            ? ???printf( str );
            }

            試題 7

            void Test( void )
            {
            ? ???char *str = (char *) malloc( 100 );

            ? ???strcpy( str, "hello" );
            ? ???free( str );

            ? ???...??//
            省略的其它語(yǔ)句

            }

            解答:

            試題 4 傳入中 GetMemory( char *p ) 函數(shù)的形參為字符串指針,在函數(shù)內(nèi)部修改形參并不能真正的改變傳入形參的值,執(zhí)行完

            char *str = NULL;

            GetMemory( str );

            后的 str 仍然為 NULL

            試題 5

            ? ???char p[] = "hello world";? ?

            ? ???return p;??

            p[] 數(shù)組為函數(shù)內(nèi)的局部自動(dòng)變量,在函數(shù)返回后,內(nèi)存已經(jīng)被釋放。這是許多程序員常犯的錯(cuò)誤,其根源在于不理解變量的生存期。
            試題 6 GetMemory 避免了試題 4 的問(wèn)題,傳入 GetMemory 的參數(shù)為字符串指針的指針,但是在 GetMemory 中執(zhí)行申請(qǐng)內(nèi)存及賦值語(yǔ)句

            p = (char *) malloc( num );

            后未判斷內(nèi)存是否申請(qǐng)成功,應(yīng)加上:

            if ( p == NULL )
            {

            ? ?...//
            進(jìn)行申請(qǐng)內(nèi)存失敗處理
              }

            試題 7 存在與試題 6 同樣的問(wèn)題,在執(zhí)行

            char *str = (char *) malloc(100);

            后未進(jìn)行內(nèi)存是否申請(qǐng)成功的判斷;另外,在 free(str) 后未置 str 為空,導(dǎo)致可能變成一個(gè) 指針,應(yīng)加上:

            str = NULL;

            試題 6 Test 函數(shù)中也未對(duì) malloc 的內(nèi)存進(jìn)行釋放。

            剖析:

            試題 4 7 考查面試者對(duì)內(nèi)存操作的理解程度,基本功扎實(shí)的面試者一般都能正確的回答其中 50~60 的錯(cuò)誤。但是要完全解答正確,卻也絕非易事。

            對(duì)內(nèi)存操作的考查主要集中在:

            1 )指針的理解;

            2 )變量的生存期及作用范圍;

            3 )良好的動(dòng)態(tài)內(nèi)存申請(qǐng)和釋放習(xí)慣。

            在看看下面的一段程序有什么錯(cuò)誤:

            swap( int* p1,int* p2 )
            {
            ? ???int *p;

            ? ???*p = *p1;
            ? ???*p1 = *p2;
            ? ???*p2 = *p;
            }

            swap 函數(shù)中, p 是一個(gè) 指針,有可能指向系統(tǒng)區(qū),導(dǎo)致程序運(yùn)行的崩潰。在 VC++ DEBUG 運(yùn)行時(shí)提示錯(cuò)誤 “Access Violation” 。該程序應(yīng)該改為:

            swap( int* p1,int* p2 )
            {
            ? ???int p;

            ? ???p = *p1;
            ? ???*p1 = *p2;
            ? ???*p2 = p;
            }















            posted on 2006-11-09 15:47 喬棟 閱讀(380) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C的游樂(lè)園
            <2006年12月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(6)

            隨筆分類(lèi)

            隨筆檔案

            文章分類(lèi)

            文章檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜


            My blog is worth $0.00.
            How much is your blog worth?

            国产A三级久久精品| 亚洲伊人久久大香线蕉综合图片 | 777久久精品一区二区三区无码| 久久久亚洲欧洲日产国码aⅴ| 久久精品国产精品亚洲毛片| 精品免费tv久久久久久久| 久久激情亚洲精品无码?V| 午夜久久久久久禁播电影| 97精品国产97久久久久久免费| 一级做a爰片久久毛片毛片| 亚洲国产精品无码久久久秋霞2 | 久久综合狠狠综合久久97色| 精品国产青草久久久久福利| 无码人妻精品一区二区三区久久 | 久久午夜伦鲁片免费无码| 久久无码一区二区三区少妇| 国产精品一久久香蕉国产线看观看| 久久影院久久香蕉国产线看观看| 新狼窝色AV性久久久久久| 人妻中文久久久久| 国产精品VIDEOSSEX久久发布| 久久婷婷激情综合色综合俺也去| 久久精品国产精品亚洲人人| 精品永久久福利一区二区| 久久婷婷人人澡人人爽人人爱| 久久免费国产精品| 亚洲国产精品久久久久| 国产精品视频久久| 久久久久久午夜成人影院| 一本色道久久综合狠狠躁| 国产精品一区二区久久精品涩爱 | 久久国产免费观看精品3| 性高朝久久久久久久久久| 久久精品成人免费观看97| 日韩亚洲欧美久久久www综合网| 久久久精品人妻一区二区三区蜜桃 | 日本一区精品久久久久影院| 中文字幕人妻色偷偷久久| 久久久久久久精品成人热色戒| 久久久久人妻精品一区三寸蜜桃| 久久国产视频网|