作者dcleft (SOSOYA)
看板C_and_CPP
标题Re: [语法] 在C++的header如何使用2维阵列?
时间Fri Mar 27 20:08:51 2009
※ 引述《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)