<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            C/C++內存的筆試題

            時間:2020-11-23 18:04:45 筆試題目 我要投稿

            C/C++有關內存的筆試題

              void GetMemory(char *p)

            C/C++有關內存的筆試題

              {

              p = (char *)malloc(100);

              }

              void Test(void)

              {

              char *str = NULL;

              GetMemory(str);

              strcpy(str, “hello world”);

              printf(str);

              }

              請問運行Test 函數會有什么樣的結果?

              答:程序崩潰。

              因為GetMemory 并不能傳遞動態內存,Test 函數中的 str 一直都是 NULL。

              strcpy(str, “hello world”);將使程序崩潰。

              char *GetMemory(void)

              {

              char p[] = “hello world”;

              return p;

              }

              void Test(void)

              {

              char *str = NULL;

              str = GetMemory();

              printf(str);

              }

              請問運行Test 函數會有什么樣的結果?

              答:可能是亂碼。

              因為GetMemory 返回的是指向“棧內存”的指針,該指針的`地址不是 NULL,但其原現的內容已經被清除,新內容不可知。

              void GetMemory2(char **p, int num)

              {

              *p = (char *)malloc(num);

              }

              void Test(void)

              {

              char *str = NULL;

              GetMemory(&str, 100);

              strcpy(str, “hello”);

              printf(str);

              }

              請問運行Test 函數會有什么樣的結果?

              答:(1)能夠輸出hello;(2)內存泄漏

              void Test(void)

              {

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

              strcpy(str, “hello”);

              free(str);

              if(str != NULL)

              {

              strcpy(str, “world”);

              printf(str);

              }

              }

              請問運行Test 函數會有什么樣的結果?

              答:篡改動態內存區的內容,后果難以預料,非常危險。

              因為free(str);之后,str 成為野指針,if(str != NULL)語句不起作用。

            【C/C++有關內存的筆試題】相關文章:

            華為c/c++筆試題12-19

            C/C++面試題目12-12

            華為C++筆試題12-25

            聯想C++筆試題12-24

            Sony C++筆試題12-19

            C,C++的幾個面試題小集12-27

            C++筆試題目分享12-20

            Kingsoft金山公司C/C++筆試題12-17

            C C++面試筆試題目集錦11-14

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看