间接通过new 来申请一个二维的堆内存数组
生活随笔
收集整理的這篇文章主要介紹了
间接通过new 来申请一个二维的堆内存数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們知道無法直接通過new 來申請一個二維的堆內存數組,于是有人想出了這樣一個辦法:創建一個一維堆內存指針數組,即每個數組元素是一個指針,然后用new 給各個指針分配一個一維的堆內存數組,那么最后表示出來就像是一個二維的堆內存數組了。試編寫一段程序,依照以上方法實現一個大小為8×8 的二維堆內存數組,數據類型為整型,并將數組元素依次賦值、輸出。
運行結果示例:
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
#include "iostream.h"
#include "iomanip.h"
int main()
{
??? int **superarray;//指向整型指針的指針(理解為快捷方式的快捷方式)
??? superarray=new int *[8];//為“指針的指針”申請堆內存(類型為int* 即整型指針)
??? for (int i=0;i<8;i++)
??? {
??? ??? superarray[i]=new int[8];//為“指針”申請堆內存(類型為int 即整型)
??? }
??? for (int j=0;j<8;j++)
??? {
??? ??? for (int k=0;k<8;k++)
??? ??? {
???????? superarray[j][k]=j*8+k;
??? ??? ?cout<<setw(3)<<superarray[j][k];
??? ??? }
??? ??? cout<<endl;
??? }
??? for (int l=0;l<8;l++)
??? {
??? ??? delete[]superarray[l];
??? }
??? delete[]superarray;
??? return 0;
}
運行結果示例:
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
#include "iostream.h"
#include "iomanip.h"
int main()
{
??? int **superarray;//指向整型指針的指針(理解為快捷方式的快捷方式)
??? superarray=new int *[8];//為“指針的指針”申請堆內存(類型為int* 即整型指針)
??? for (int i=0;i<8;i++)
??? {
??? ??? superarray[i]=new int[8];//為“指針”申請堆內存(類型為int 即整型)
??? }
??? for (int j=0;j<8;j++)
??? {
??? ??? for (int k=0;k<8;k++)
??? ??? {
???????? superarray[j][k]=j*8+k;
??? ??? ?cout<<setw(3)<<superarray[j][k];
??? ??? }
??? ??? cout<<endl;
??? }
??? for (int l=0;l<8;l++)
??? {
??? ??? delete[]superarray[l];
??? }
??? delete[]superarray;
??? return 0;
}
轉載于:https://www.cnblogs.com/xwall/archive/2010/04/08/1707463.html
總結
以上是生活随笔為你收集整理的间接通过new 来申请一个二维的堆内存数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PowerDesigner 教程篇 -
- 下一篇: JS操作Excel读取和写入(模板操作)