<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í)

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91精品免费高清在线| 美女视频黄频a免费| 91老湿机福利免费体验| 国产成人无码综合亚洲日韩| 黄色a级免费网站| 亚洲精品无码av天堂| 一级毛片免费播放男男| 亚洲美女在线国产| 成人一级免费视频| 亚洲av无码天堂一区二区三区| 国产亚洲人成在线影院| 亚洲精品国自产拍在线观看| 国产免费福利体检区久久| 国产精品亚洲视频| 国产免费播放一区二区| 久久亚洲精品成人综合| 久久久久av无码免费网| 国产精品亚洲片夜色在线| 国产高清在线精品免费软件| 四虎精品免费永久免费视频| 亚洲国产三级在线观看| 日韩免费高清大片在线| 亚洲国产精品一区二区三区在线观看| 免费看美女被靠到爽的视频| 麻豆va在线精品免费播放| 国产亚洲一区二区三区在线观看 | 99ri精品国产亚洲| 日本片免费观看一区二区| 亚洲女女女同性video| 亚洲不卡AV影片在线播放| 永久免费av无码入口国语片| 亚洲第一网站免费视频| 性做久久久久免费观看| 中国好声音第二季免费播放| 亚洲日韩乱码中文无码蜜桃| 国产成人免费片在线观看 | 一级片在线免费看| 亚洲最新永久在线观看| 好吊妞在线成人免费| 黄色视频在线免费观看| 亚洲av产在线精品亚洲第一站 |