不好意思打扰一下各位。今天实验课的有个设计我想用动态二维数组做,但是不知道为什么,比如2位同学2个科目就能顺利运行,其他稍微大一点的数据运行可以正常但往往容易运行到一半程序崩溃这是为什么呢
我检查了一下我想应该是没有溢出的?
源码如下,恳请诸位解惑,谢谢啦
#include
#include
void sum(int i,int n,int p,int *t,int **a);
void main( )
{
int max=0,min=1000;
int m,n,i,x=0;
int *p=0,*t=0;
p=&max;
t=&min;
printf("请输入学生数和科目数 (中间以空格隔开):");
scanf("%d%d",&m,&n);
int **a=0;
a = (int*)malloc(sizeof(int*)*m);
for (x= 0; x <=n; x++)
a[x] = (int*)malloc(sizeof(int)*n);
printf("输入%d个学生的%d门课的成绩\n",m,n);
while (i<=m-1)
{
printf("现在请输入第%d个学生的成绩 (四门成绩中间以空格隔开):",i+1);
for (x=0;x<=n-1;x++)
scanf("%d",&a[i][x]);
sum(i,n,p,t,a);
i++;
}
printf("最高分为%d,最低分为%d",max,min);
free(a);
}
void sum(int i,int n,int *p,int *t,int **a)
{
int x,s=0;
for (x=0;x<=n-1;x++)
s=s+a[i][x];
if (s>=*p)
*p=s;
if (s<*t)
*t=s;
}