主函数中输入矩阵的行数m和列数n,调用函数createMatrix动态申请内存单元创建能够保存m行n列个整数的内存空间,返回能够访问该空间的地址。调用函数loadMatrix给m行n列的矩阵填上0-100之间的随机整数。调用showMatrix函数输出m行n列的矩阵。调用destroyMatrix释放动态申请的内存空间。是通过指针数组模拟二维数组可以使用二维下标
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
int** createMatrix(int m,int n);
void loadMatrix(int** p,int m,int n);
void showMatrix(int** p,int m,int n);
void destroyMatrix(int** p,int m);
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int** p;
p = createMatrix(m,n);
loadMatrix(p,m,n);
showMatrix(p,m,n);
destroyMatrix(p,m);
}
int** createMatrix(int m,int n){
int i;
int **p = (int **)malloc(sizeof(int *) * m);
for (i = 0; i < m; ++i)
{
p[i] = (int *)malloc(sizeof(int) * n);
}
return p;
}
void loadMatrix(int** p,int m,int n){
int i,j;
srand((unsigned)time(NULL));
for(i = 0;i < m;i++){
for(j = 0;j < n;j++){
p[i][j] = rand() % 100;
}
}
}
void showMatrix(int** p,int m,int n){
int i,j;
for(i = 0;i < m;i++){
for(j = 0;j < n;j++){
printf("%d ",p[i][j]);
}
printf("\n");
}
}
void destroyMatrix(int** p,int m){
int i;
for (i = 0; i < m; i++){
free(p[i]);
}
free(p);
}