1. 程式人生 > >指針和動態內存分配和釋放

指針和動態內存分配和釋放

配對 mes eof es2017 space 進行 初始化 let span

格式:

用法1:

      指針變量名 = new T(初始化值); //申請 其中T是類型名,p是類型為 T* 的指針,會動態分配出一片大小為 sizeof(T) 字節的內存

            delete 指針名;                 //釋放

            new運算符返回的是一個指向所分配類型變量(對象)的指針。

用法2:  對數組進行動態分配與釋放的格式:

       指針變量名 = new 類型名[長度]; //配出一片大小為 (長度 * sizeof(T))字節的內存
      delete[] 指向該數組的指針變量名; //此處[]也是配對使用

用法1:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int *p = new int (4);
/*  int *p;
    p = new int; //動態分配出sizeof(int) = 4個字節大小的內存空間,p可以讀寫這段內存空間
    *p = 4;    
等價int *p = new int (4);
*/
    cout<<p<<endl; // 地址
    cout<<*p<<endl;// *+地址 即值
    delete p; //釋放內存
    return
0; }

輸出結果:

技術分享

用法2:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int *p;
    p = new int [20];
    p[0] = 66;
    cout<<p[0]<<endl;
    cout<<"--------"<<endl;
    delete[] p;
    p = NULL;
    return 0;
}

指針和動態內存分配和釋放