如何定义一个动态的二维数组
在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 }