我想建立一个动态二维数组,大小未知,应满足如下情况:
a[0,0],...,a[0,x1]
a[1,0],...,a[1,x2]
..................
a[n,0],...,a[n,xn]
其中n,x1,x2,...,均应根据程序运行情况自动产生。
具体该怎么做?望高手指点,最好给出代码!
a[0,0],...,a[0,x1]
a[1,0],...,a[1,x2]
..................
a[n,0],...,a[n,xn]
其中n,x1,x2,...,均应根据程序运行情况自动产生。
具体该怎么做?望高手指点,最好给出代码!
其实所谓的多维数组,只不过是寻址时候编译器自动给你加了一个偏移量而已比如
int *a;
int b[X][N];a=new int[X*N];那么*(a+x*N+m)跟b[x][n]是等价的调用
http://community.csdn.net/Expert/topic/3027/3027144.xml?temp=.7219355
int **a= (int **)malloc(sizeof(int *) *X);
for(int i=0;i<X;i++)
a[i]=(int *)malloc(sizeof(int)*N);
释放
for(int i=0;i<X;i++)
free(a[i]);
free(a);
for()
a[i] = new A[n];
或用vector < vector<> >
new a[n][x]
其中n、x用参数传递就可以了
用完了记得用
delete[]
释放掉内存就可以了
csdn http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=204998
http://www.china-askpro.com/msg25/qa74.shtml
a[1,0],...,a[1,x2]
..................
a[n,0],...,a[n,xn]
其中n,x1,x2,...,均应根据程序运行情况自动产生。int x[n] = {x1,x2,x3,x4,......,xn};
int **a;
a = new int*[n];
for(int i;i<n;i++)
a[i] = new int[x[i]];
http://www.loveunix.net/bbs/index.php?showtopic=36529