//C++ 在堆上開闢與釋放二維、三維指針
#include<iostream>
using namespace std;
int main()
{
//二級指針的開闢與釋放
int number = 0;
int** p = new int*[4];
for(int i = 0; i < 4; i++) //分級定義數組大小
{
p[i] = new int[4];
}
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
p[i][j] = number++;
}
}
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
cout << p[i][j] << endl;
}
}
for(int i = 0; i < 4; i++) //分級釋放堆上的指針內存
{
delete[] p[i];
}
delete []p;
int*** pp = new int**[4];
for(int i = 0; i < 4; i++) //分級定義數組大小
{
pp[i] = new int*[4];
for(int j = 0; j < 4; j++)
{
pp[i][j] = new int[4];
}
}
number = 0;
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
for(int k = 0; k < 4; k++)
{
pp[i][j][k] = number++;
}
}
}
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
for(int k = 0; k < 4; k++)
{
cout << pp[i][j][k] << " ";
}
}
}
for(int i = 0; i < 4; i++) //分級釋放堆上的數組內存
{
delete []pp[i];
for(int j = 0; j < 4; j++)
{
delete []pp[i][j];
}
}
return 0;
}
C++ 在堆上開闢與釋放二維、三維指針
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
C++智能指針模板類複習
//C++智能指針模板類複習 #include<iostream> #include<memory> using namespace std; //
linukey
2020-06-23 06:00:02
模板元編程加速遞歸
//模板元編程加速遞歸 //缺點:模板元在編譯時處理,無法調試,並且會加大代碼體積 #include<iostream> using namespa
linukey
2020-06-23 06:00:02
C++類轉換構造函數和轉換函數複習
//C++類轉換構造函數和轉換函數複習 #include<iostream> #include<string> using namespace st
linukey
2020-06-23 06:00:02
C++ lambda表達式複習
linukey
2020-02-23 19:47:32
C++中類const、static、static const成員變量
linukey
2020-02-23 19:47:32
C++實現C語言printf函數
linukey
2020-02-23 19:47:32
利用包裝器以及lambda表達式實現二叉查找樹
linukey
2020-02-23 19:47:32
extern
yuwei19840916
2020-02-23 15:07:22
linux下查看so文件的函數列表
赵小刚
2020-02-22 22:52:11
24小時熱門文章
-
再談23種設計模式(3):行爲型模式(學習筆記)
-
Power Automate Desktop 安裝完,登錄後老是提示one driver 錯誤
-
微前端學習筆記(4):從微前端到微模塊之EMP與hel-micro方案探索
-
微前端學習筆記(1):微前端總體架構概述,從微服務發微
-
985 碩士程序員,空窗 4 個月沒有 Offer!
-
一文搞懂 Spring 循環依賴
-
賽博鬥地主——使用大語言模型扮演Agent智能體玩牌類遊戲。
-
VScode右鍵打開(添加到右鍵)
-
記一次 .NET某工控視覺自動化系統 卡死分析
-
WindowsServer--SQL Server搭建主從同步實現讀寫分離 - 事務性分發