[轉錄]C/C++ 的多維動態陣列 - Amin's Note - 痞客邦
文章推薦指數: 80 %
Array[i]=pData;. 注意到嗎?這次只用了二次的malloc。
當要release memory也只要free Array[ ...
關閉廣告
Amin'sNote
跳到主文
阿民的生活筆記
部落格全站分類:數位生活
相簿
部落格
留言
名片
Aug20Mon200720:21
[轉錄]C/C++的多維動態陣列
http://ehome.hifly.to/showthread.php?threadid=357
多維動態陣列在C中大概只能用malloc,但這在一維時尚不構成問題,但需要多維陣列時怎麼辦呢?這算是程式論壇最常被問到的問題之一了。
我把它整理了相關的回覆,都只用二維做說明,更多維的陣列類推即可。
就從C談起吧!動態產生一個[m][n]陣列Array的方法
code:inti;int**Array;Array=(int**)malloc(m*sizeof(void*));for(i=0;i
《小班》終於會從1數到100了?>那...?>int*Array[]=newint[10][20];//這樣行ㄇ?有點想法了!但可惜的是'*'在C++的語法是修飾前面的識別字,所以int*Array[]的意思是"Array是一個int指標的一維陣列!"如果能使那個'*'以獨立指標型態去宣告Array,就會變成"Array是一個指標,指向一維int的陣列",而我們知道指標本身就可以當做一維的陣列,那麼是不是就成了"Array是一個二維的int陣列"?對了!這正是我們要的!問題是怎麼讓'*'成為獨立指標型態,不會去修飾前面的int識別字?答案是使用括號:int(*Array)[20]=newint[10][20];//這是正解!但問題又來了,new運算子可以使用newint[m][n],但int(*Array)[20]的[20]卻沒辦法以[n]來取代,所以就沒辦法做到不定大小的宣告了。
所以這只能算是小班的答案,要做到不定大小的動態多維宣告,加上STL的運用,是不錯的想法。
《中班》vector模板的運用vector
《大班》使用模板在模版中仔細觀察下面的宣告:vector
若你能一眼看出這是在幹嘛,那麼你早已超出大班的程度了!若你暫時不知所云,也沒關係,你可以安全的使用它帶給你的好處。
只是你也只好留在大班留班查看了^_^解釋這個宣告,其實不難,但首先你要對模版的使用有相當的了解,當然還要對vector模版的建構子不能陌生。
這樣子自然很容易可以看得懂它。
了然於胸了嗎?恭喜你,大班可以畢業了^_@註:大班的答案是Duncan在練功房提出的解答,注意到兩個兩個角括號中間的空白了嗎?(> >) ^-------這裡要有空白不加空白的話會被語法解析為右移運算子。
全站熱搜
創作者介紹
Aminzai
Amin'sNote
Aminzai發表在痞客邦留言(2)人氣()
E-mail轉寄
全站分類:數位生活個人分類:Coding此分類上一篇:[轉錄]JavaME應用設計指南之聯網重定向
此分類下一篇:給學弟妹看的Code::Blocks工具安裝法
上一篇:PlaytheBasssssssssssssssssss
下一篇:好久沒寫網誌
歷史上的今天
2007:PlaytheBasssssssssssssssssss
▲top
留言列表
發表留言
新聞交換(RSS)
參觀人氣
本日人氣:
累積人氣:
網誌搜尋
近期文章
熱門文章
最新迴響
文章分類
CSIE(1)
專題(10)
心情類(2)
心情沒上鎖類(150)心情上鎖類(0)
Computer(7)
Software(15)Linux(88)Computerlike(35)Coding(35)Latex(5)Android(2)VIM(1)
Other(1)
其他(29)
Video(2)
JustForFun(6)MV(33)
誰來我家
最新站方公告
[公告]2022年度農曆春節期間服務公告[公告]MIB廣告分潤計劃、PIXwallet錢包帳戶條款異動通知[公告]2021年度農曆春節期間服務公告
POWEREDBY
(登入)
這只是我用來紀錄生活,學習的一個小天地....
如果有任何需要的資料請自取....如自創之文件請留轉載位置....
回到頁首
回到主文
免費註冊
客服中心
痞客邦首頁
©2003-2022PIXNET
關閉視窗
延伸文章資訊
- 1C語言動態分配多維陣列 - Crystal的部落格
稍微紀錄一下不然怕自己忘記學習C/C++ 時一定學過如何動態分配記憶體malloc/free 與new/delete C語言中沒有真正的多維陣列,是用一維陣列去模擬二維陣列的兩種寫法: ...
- 2二維malloc - tommychou1229的部落格- 痞客邦
動態配置二維陣列不能int **a = new int[m][n],程式語言設計上限制new僅能配置一維連續空間, ... for(int i=0; i<m; i++){//------做完後f...
- 3二維陣列malloc - w3c菜鳥教程
二維陣列malloc,如果要給二維陣列m n 分配空間, 可以寫成下面char a i 先分配m個指標單元,注意是指標單元所以每個單元的大小 ... free((void *)a);.
- 4malloc動態申請一個二維陣列的兩種方法 - 程式人生
... 記得釋放空間 free(a[i]); free(a); return 0; }. 方法二:用陣列指標形式申請 #include <stdio.h> #include <malloc.h>...
- 5c語言: 什麼時候必用malloc而不直接宣告陣列? - iT 邦幫忙
譬如說要宣告一個5*4的 int 二維陣列, ... 依照對矩陣的切割也就有各種需求,那malloc使用完也都須要立即釋放(free)記憶體。 ... 這篇暫以指標動態配置一維陣列為例。