/* C语言动态分配内存建立二位数组 原创加整理 */ #include <stdio.h> #include <stdlib.h> int main() { int line,row; int **pp; //定义一个指针的指针 int i,j; printf("please enter the line of the array:\n"); //输入行 scanf("%d",&line); printf("please enter the row of the array:\n"); //输入列 scanf("%d",&row); pp=(int **)malloc(line*sizeof(int *)); //动态分配行, 这里略去判断是否分配成功 for(i=0;i<line;i++) //动态分配列 pp[i]=(int *)malloc(row*sizeof(int)); for(i=0;i<line;i++) //赋值 for(j=0;j<row;j++) pp[i][j]=(i+1)*10+(j+1); for(i=0;i<line;i++) //输出数据 { for(j=0;j<row;j++) { printf("%7d",pp[i][j]); } printf("\n"); } free(pp); getchar(); getchar(); return 0; }
|