動態配置記憶體空間

1.C  -------- 利用 malloc() 與 free()

            malloc():記憶體生成  //(標頭檔需包含 stdlib.h 與 malloc.h

範例一

          int *ptr;
          ptr = (char*)malloc(sizeof(int)*10);

            free():釋放記憶體  //(標頭檔需包含 stdlib.h 與 malloc.h

範例二

          free(ptr);

2.C++  -------- 利用 new 與 delete

            new:記憶體生成

指標變數 = new 變數型態[Length]

指標變數 = new 變數型態(初始值)

範例一 單一變數

           int *ptr;
           ptr = new int;
          or
          int *ptr = new int(15);

範例二 一維陣列

           int *ptr;
           ptr = new int[10];
          or
          int *ptr=new int[10];

          for(int i=0;i<10;i++)
                    ptr[i]=i;

範例三 二維陣列 (建立一個10*10的整數二維矩陣)

           int **p;
           ptr = new int*[10];
          for(int i=0;i<10;i++)
          {
                p[i] = new int [10];
          }

 

            delete:釋放記憶體空間

delete 指標變數 ;

delete [ ] 指標變數 ;

範例一 單一變數

           int *ptr;
           ptr = new int;
          .....
          delete ptr;

範例二 一維陣列

           int *ptr;
           ptr = new int[10];
          or
          int *ptr=new int[10];

         delete [ ] ptr;

範例三 二維陣列 (釋放一個10*10的整數二維矩陣)

           int **p;
           ptr = new int*[10];
          for(int i=0;i<10;i++)
          {
                delete [ ] p;
          }
           delete [ ] p;

          或

          delete [ ] p;