二级指针的应用之一就是创建动态数组,包括一维数组和二维数组:
init(&a,size);
for(inti=0;i<size;i++) printf("%5d",a[i]);
int**p,**q;
p=create(10,20);
q=create(3,7);
代码如下:
//一维数组
int init(int **p,intsize)
{
int *a;
if((a=(int*)malloc(size*sizeof(int)))==NULL)return 0;
printf("input %d values:\n",size);
*p=a;
while(size--)
{
scanf("%d",a++);
}
return 1;
}
{
}
调用方式:int*a,size;
//二维数组
int **create(int rows ,int cols)
{
int **x,i;
x=(int **)malloc(rows*sizeof(int*));
for(i=0;i<rows;i++)
x[i]=(int*)malloc(cols*sizeof(int));
return x;
}
调用方式:
{
}