C++動態創建二維數組


之前我一直被這個問題所迷惑,那時我是用的是C,而不是C++。

在使用malloc函數的時候,我可能是有些東西處理得不太好,學的不精,在那時一直沒有實現二維數組的生成。

今天在實驗室正好要寫一個console的小游戲玩,就順手重拾了這個問題。不過在這里,我用的是C++。

這個小游戲的名字是MAP的,所以需要創建一個地圖。

之前測試的方向控制成員函數用的是一個二維數組變量,直接聲明的。

但是我覺得如果能夠添加一個地圖大小控制那么樂趣就會有一定提升。

 

 

首先,創建一個一維數組需要一個一維指針。

形式如下:

View Code
1 int *valinttemp=NULL;
2 valinttemp=new int [10];//Or someother variables

這就完成了一個基礎的數組的創建,非常簡單。

而二維數組,需要一個二維指針嗎?

先思考一個問題,指針是什么?

現在關於C\C++指針的講義非常多,我本人也寫過,在這里不再多說,只提要點。

指針包含的信息主要有兩種:1 地址 2 指向的類型

創建二維數組,就是創建一個元素為指針的指針數組。

如果你不知道指針數組和數組指針的區別,我建議你去查一查。

所以創建一個二維數組首要步驟就是創建一個二維指針。

然后將其創建成指針數組,最后創建成二維數組。

一個很簡易的代碼:

 1 int intvalT;
 2     int **intptemp;
 3     cin>>intvalT;
 4     intptemp=new int *[intvalT];
 5     for(int i=0;i<intvalT;i++)
 6     {
 7         intptemp[i]=new int [10];
 8         for(int j=0;j<10;j++)
 9         intptemp[i][j]=12;
10     }
11     for(int i=0;i<intvalT;i++)
12     {
13         for(int j=0;j<10;j++)
14         cout<<intptemp[i][j]<<ends;
15         cout<<endl;
16     }

That‘s all.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM