2011-03-12 12:27:20
今天遇到了一点编写动态数组的麻烦。
归纳总结如下(头文件为:malloc.h):
一维数组:
int *a,n;
a=(int *)malloc(sizeof(int)*n);
二维数组:
(1)采用数组指针
使用它可以定义一个第一个下标未知、第二个下标已知的数组
int (*a)[3],n;
a=(int(*)[3])(malloc(n*3*sizeof(int));
(2)采用指针数组
使用它定义已知第一个下标,而第二个未知的数组。
int *a[3],n;
for(i=0;i<3;i++)
{
a[i]=(int *)malloc(n*sizeof(int));
}
(3)采用二级指针结构
使用它定义一个双下标未知的数组
int **a,m,n;
a=(int **)malloc(m*sizeof(int));
for(i=0;i<m,i++)
{
a[i]=malloc(n*sizeof(int));
}