Re: [語法] 在C++的header如何使用2維陣列?
※ 引述《dcleft (SOSOYA)》之銘言:
: header檔用int a[][]是不予許的
: 所以我改用int **a
: 現在想動態宣告一個 3 x 5 的array
: 在 C 的 source file 裡面我會這樣用
: a=(int**)malloc(sizeof(int*)*3);
: int i;
: for(i=0;i<3;i++)
: *(a+i)=(int*)malloc(sizeof(int)*5);
: 但是 C++ 中要如何定義第一維是3個element?
: 試了 a=new int*[3]; 會出現compile error ,除了用vector想不到別的辦法了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
對不起,我耍笨了,new int*[3] 是可以的 ,可以用下面方式寫
int **a;
a=new int*[3];
for(int i=0;i<3;i++)
a[i]=new int[5];
for(int i=0;i<3;i++)
for(int j=0;j<5;j++)
a[i][j]=i*5+j;
for(int i=0;i<3;i++)
for(int j=0;j<5;j++)
cout<<a[i][j]<<" ";
會印出 0 ~ 14
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.99.0.10
※ 編輯: dcleft 來自: 122.99.0.10 (03/27 20:09)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章