指標與變數(或陣列)的動態建立與釋放
阿新 • • 發佈:2018-12-05
1、變數記憶體的動態分配(建立)與釋放:通過指標,動態間接賦值、取值
指標變數名=new 資料型別(初始值); 初始值可省略,後邊再賦值。
delete 指標變數名;
#include<iostream> using namespace std; int main() { //int *p = new int; *p = 5; int *p = new int(5);//new運算子,動態建立一個int型變數(無變數名),值為5。 cout << *p;//輸出所指地址的值 delete p;//釋放指標變數的記憶體空間 return0; }
2、一維陣列的動態分配(建立)與釋放:
指標變數名=new 資料型別[正整數常量、變數或表示式];
delete [ ]指標變數名;
#include<iostream> using namespace std; int main() { int *p = new int[5];//new運算子,動態建立一個int型陣列(無陣列名)。 *(p + 1) = 10;//賦值第2個元素 //或p[1]=10; cout << p[1];//輸出所指地址的值 delete []p;//釋放指標變數陣列的記憶體空間 return0; }
顯示Fibonacci數列的前N項,0,1,1,2,3,5,8,…
#include<iostream> using namespace std; int main() { int N; cin >> N; int *p = new int[N]; //動態建立包含N個元素的陣列 p[0] = 0; p[1] = 1;//給定第1、2元素的值,等效*p=0;*(p+1)=1; for (int i = 2; i < N; i++){ p[i] = p[i - 1] + p[i - 2]; }for (int i = 0; i < N; i++) { cout << p[i] << " "; } delete []p;//釋放指標變數陣列的記憶體空間 return 0; }