#include <stdio.h>
#include <stdlib.h>
int main()
{
// int i,j;
// int m,n;
// scanf("%d %d",&m,&n);
// int *p = (int *)malloc(sizeof(int)*n*m);
// for(i=0;i<m*n;i++)
// {
// scanf("%d",p+i);
// }
// for(i=0;i<m;i++)
// {
// for(j=0;j<n;j++)
// {
// printf("%d\t",*(p+i*n+j));
// }
// printf("\n");
// }
// free(p);
/**目标生成数组 a[r][c] **/
int r,c; //声明int型变量r,c用来输入数组行、列
int **a; //声明二级指针
printf("Please enter the r & c:");
scanf("%d %d",&r,&c);
a = (int**)malloc(sizeof(int*)*r); //动态分配数组总的内存空间
for(int i=0;i<r;i++)
{
a[i] = (int*)malloc(sizeof(int)*c); //动态分配数组行的内存空间
}
for(int i=0;i<r;i++) //动态录入
{
for(int j=0;j<c;j++)
{
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<r;i++) //输出
{
for(int j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
free(a); //释放动态分配的内存
for(int i=0;i<r;i++)
{
free(a[i]);
}
return 0;
}
#include <stdlib.h>
int main()
{
// int i,j;
// int m,n;
// scanf("%d %d",&m,&n);
// int *p = (int *)malloc(sizeof(int)*n*m);
// for(i=0;i<m*n;i++)
// {
// scanf("%d",p+i);
// }
// for(i=0;i<m;i++)
// {
// for(j=0;j<n;j++)
// {
// printf("%d\t",*(p+i*n+j));
// }
// printf("\n");
// }
// free(p);
/**目标生成数组 a[r][c] **/
int r,c; //声明int型变量r,c用来输入数组行、列
int **a; //声明二级指针
printf("Please enter the r & c:");
scanf("%d %d",&r,&c);
a = (int**)malloc(sizeof(int*)*r); //动态分配数组总的内存空间
for(int i=0;i<r;i++)
{
a[i] = (int*)malloc(sizeof(int)*c); //动态分配数组行的内存空间
}
for(int i=0;i<r;i++) //动态录入
{
for(int j=0;j<c;j++)
{
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<r;i++) //输出
{
for(int j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
free(a); //释放动态分配的内存
for(int i=0;i<r;i++)
{
free(a[i]);
}
return 0;
}
这篇博客介绍如何根据用户输入的行数和列数,动态创建二维整数数组,并逐个元素读取赋值,最后输出整个数组。程序使用C语言实现,通过malloc函数分配内存,然后使用二维指针遍历并打印数组。
1025

被折叠的 条评论
为什么被折叠?



