用动态分配内存写二维矩阵。。有一点问题。
#include<stdio.h>#include<time.h>
#include<malloc.h>
#include<stdlib.h>//程序编译通过,一运行就出错,调试了一下,好像是动态分配内存的问题,但不知道怎么改,请帮我看看。
void main(){
int *p[4];
int i,j,a;
srand(time(0));
*p=(int*)malloc(5*sizeof(int(*)[4]));//申请开设5个单元,每个单元有4个连续的空间(int(*)[4])
for(i=0;i<4;i++){
for(j=0;j<5;j++){
a=rand();
if(a<0 ||a>100)
a=rand();
p[i][j]=a;
}
}
for(i=0;i<4;i++){
for(j=0;j<5;j++)
printf("%3d",p[i][j]);
printf("\n");
}
free(p);
}//能不能讲一下malloc和free在二维矩阵里怎么用?谢谢大家了。