<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    c/c++ 動態(tài)申請數(shù)組

     

    c/c++ 動態(tài)申請數(shù)組

    分類: 一些常識 2435人閱讀 評論(0) 收藏 舉報

    new和delete運算符用于動態(tài)分配和撤銷內(nèi)存的運算符

    new用法:

              1.     開辟單變量地址空間

                   1)new int;  //開辟一個存放數(shù)組的存儲空間,返回一個指向該存儲空間的地址.int *a = new int 即為將一個int類型的地址賦值給整型指針a. 

                   2)int *a = new int(5) 作用同上,但是同時將整數(shù)賦值為5

              2.     開辟數(shù)組空間

                   一維: int *a = new int[100];開辟一個大小為100的整型數(shù)組空間

                   二維: int **a = new int[5][6]

                   三維及其以上:依此類推.

             一般用法: new 類型 [初值]

    delete用法:

              1. int *a = new int;

                   delete a;   //釋放單個int的空間

              2.int *a = new int[5];

                   delete [] a; //釋放int數(shù)組空間

              要訪問new所開辟的結(jié)構(gòu)體空間,無法直接通過變量名進(jìn)行,只能通過賦值的指針進(jìn)行訪問.

              用new和delete可以動態(tài)開辟,撤銷地址空間.在編程序時,若用完一個變量(一般是暫時存儲的數(shù)組),下次需要再用,但卻又想省去重新初始化的功夫,可以在每次開始使用時開辟一個空間,在用完后撤銷它.

     

    1. #include <iostream>  
    2. using namespace std;  
    3. int main()  
    4. {  
    5.     char *p=new char[10];  
    6.     scanf ("%s",p);  
    7.     printf ("%s",p);  
    8.     delete []p;  
    9.     while (1);  
    10.     return 0;  
    11. }  


     這是 二維數(shù)組的申請方法

    1. #define   ROW   100   
    2. #define   COL   200   
    3. #define   T   char   (int,float,....)   //通用數(shù)據(jù)類型   
    4. T   **   pTemp   ;   
    5. *pTemp   =   new   T[ROW]   ;   
    6. for   (int   i   =   0   ;   i   <   COL   ;   i   ++)   
    7.       pTemp[i]   =   new   T[COL};   
    8.   
    9. /////////////////delete   
    10. for   (int   i   =0   ;   i   <   COL   ;   i   ++)   
    11.         delete   []   pTemp[i]   ;   
    12. delete   [][]pTemp   ;  


     

    1.分配內(nèi)存空間函數(shù)malloc

      調(diào)用形式: (類型說明符*) malloc (size) 功能:在內(nèi)存的動態(tài)存儲區(qū)中分配一塊長度為"size" 字節(jié)的連續(xù)區(qū)域。函數(shù)的返回值為該區(qū)域的首地址。 “類型說明符”表示把該區(qū)域用于何種數(shù)據(jù)類型。(類型說明符*)表示把返回值強(qiáng)制轉(zhuǎn)換為該類型指針。“size”是一個無符號數(shù)。例如: pc=(char *) malloc (100); 表示分配100個字節(jié)的內(nèi)存空間,并強(qiáng)制轉(zhuǎn)換為字符數(shù)組類型, 函數(shù)的返回值為指向該字符數(shù)組的指針, 把該指針賦予指針變量pc。

      2.分配內(nèi)存空間函數(shù) calloc

      calloc 也用于分配內(nèi)存空間。調(diào)用形式: (類型說明符*)calloc(n,size) 功能:在內(nèi)存動態(tài)存儲區(qū)中分配n塊長度為“size”字節(jié)的連續(xù)區(qū)域。函數(shù)的返回值為該區(qū)域的首地址。(類型說明符*)用于強(qiáng)制類型轉(zhuǎn)換。calloc函數(shù)與malloc 函數(shù)的區(qū)別僅在于一次可以分配n塊區(qū)域。例如: ps=(struet stu*) calloc(2,sizeof (struct stu)); 其中的sizeof(struct stu)是求stu的結(jié)構(gòu)長度。因此該語句的意思是:按stu的長度分配2塊連續(xù)區(qū)域,強(qiáng)制轉(zhuǎn)換為stu類型,并把其首地址賦予指針變量ps。

      3.釋放內(nèi)存空間函數(shù)free

      調(diào)用形式: free(void*ptr); 功能:釋放ptr所指向的一塊內(nèi)存空間,ptr 是一個任意類型的指針變量,它指向被釋放區(qū)域的首地址。被釋放區(qū)應(yīng)是由malloc或calloc函數(shù)所分配的區(qū)域。

     

    1. #include <stdio.h>   
    2. #include <malloc.h>   
    3. #include <stdlib.h>   
    4.   
    5. void main()   
    6. {   
    7.      int *array = 0, num, i;   
    8.      printf("please input the number of element: ");   
    9.      scanf("%d", &num);   
    10.   
    11.      // 申請動態(tài)數(shù)組使用的內(nèi)存塊   
    12.      array = (int *)malloc(sizeof(int)*num);   
    13.      if (array == 0)             // 內(nèi)存申請失敗,提示退出   
    14.      {   
    15.          printf("out of memory,press any key to quit...\n");   
    16.          exit(0);             // 終止程序運行,返回操作系統(tǒng)   
    17.      }   
    18.   
    19.      // 提示輸入num個數(shù)據(jù)   
    20.       printf("please input %d elements: ", num);   
    21.       for (i = 0; i < num; i++)   
    22.          scanf("%d", &array);   
    23.   
    24.      // 輸出剛輸入的num個數(shù)據(jù)   
    25.      printf("%d elements are: \n", num);   
    26.      for (i = 0; i < num; i++)   
    27.          printf("%d,", array);   
    28.   
    29.      printf("\b \n");    // 刪除最后一個數(shù)字后的分隔符逗號   
    30.      free(array);        // 釋放由malloc函數(shù)申請的內(nèi)存塊   
    31. }  

    posted on 2013-09-20 20:05 ** 閱讀(279) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 337p欧洲亚洲大胆艺术| 亚洲一区二区三区四区视频| 最新亚洲成av人免费看| 亚洲欧洲日产国码久在线观看| 亚洲精品成人久久| yellow视频免费看| 手机在线看永久av片免费| 亚洲夜夜欢A∨一区二区三区| 亚洲卡一卡二卡乱码新区| 最新久久免费视频| 日本免费网站观看| 亚洲第一页在线观看| 67194国产精品免费观看| 亚洲一区AV无码少妇电影☆| 中文字幕免费在线看线人动作大片 | 亚洲国产免费综合| 国产香蕉九九久久精品免费 | 久久香蕉国产线看观看亚洲片| 亚洲AV无码一区二区一二区 | 嘿嘿嘿视频免费网站在线观看| 国产AⅤ无码专区亚洲AV| 热久久这里是精品6免费观看| 亚洲av无码精品网站| 国产精品久久久久免费a∨| 亚洲av无码偷拍在线观看| 久久久久亚洲AV成人网| 青娱乐在线免费观看视频| 在线jlzzjlzz免费播放| 成年人免费的视频| 91免费国产在线观看| 一本色道久久88亚洲精品综合| 国产午夜无码精品免费看| 亚洲av日韩av激情亚洲| mm1313亚洲国产精品美女| 亚洲精品成人网站在线观看| 久久99国产亚洲高清观看首页| 精品亚洲福利一区二区| 无码国产精品一区二区免费式直播| 免费鲁丝片一级在线观看| 亚洲AV无码AV男人的天堂| 久久久久久免费视频|