如何定义一个动态的二维数组
在C中如何定义不个动态的二维数组,行(x)和列(y)都可以手动输入,请高人给出代码。小弟先谢过了。(一维的我会,二维的不知怎么写了)
程序代码:#include<stdio.h>
#include<stdlib.h>
int main()
{
int x,y; //x为行,y为列
int i,j; //循环变量
int *p; //定义指针p
printf("请输入行和列:\n");
scanf("%d%d",&x,&y);
//申请x*y*sizeof(int)内存空间
p=(int*)malloc(x*y*sizeof(int));
//初始化数组
printf("请输入%d个数值:\n",x*y);
for(i=0;i<x;i++)
for(j=0;j<y;j++)
scanf("%d",&p[i*y+j]);
//打印数组
printf("输出数组\n");
for(i=0;i<x;i++)
for(j=0;j<y;j++)
printf("%d,",p[i*y+j]);
return 0;
}看看行不行?
程序代码:int **sz(int row,int col)
{
int **p,i;
p=(int**) malloc (row*sizeof(int*));
for(i=0;i<row;i++)
*p++=(int*) malloc (col*sizeof(int));
return(p);
}
int sz(int row,int col,int ***p)
{
int **y,i;
y=(int**) malloc row*sizeof(int*);
for(i=0;i<row;i++)
*y++=(int*) malloc (col*sizeof(int));
*p=y
}