一开始调试程序就出现了unhandled exception是怎么回事

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:37:15
我写了个用三元组表进行矩阵的程序,可一调试就出现了unhandled exception in tran.exe:0xc00000FD:stack overflow是怎么回事,源码如下:
#include <stdio.h>
#define max 100000
typedef int Datatype;
typedef struct
{ int i,j;
Datatype v;
}TNode; //三元组
typedef struct
{ TNode data[max];
int m,n,t;
}TTable; //三元组表
void input(TTable *a)
{int i,j,k=0;
Datatype x;
printf("请输入矩阵的行数和列数:");
scanf("%d %d",&a->m,&a->n);
for(i=0;i<a->m;i++)
for(j=0;j<a->n;j++)
{printf("输入元素值:");
scanf("%d",&x);
if(x)
{a->data[k].i=i;
a->data[k].j=j;
a->data[k].v=x;
k++;
}
}
a->t=k;
}
void output(TTable *a)
{int i,j,k;
for(i=0;i<a->m;i++)
{for(j=0;j<a->n;j++)
{for(k=0;k<a->t;k++)
if(a->data[k].i==i&&a->data[k].j==j)
break;
if(k=a

堆栈溢出,你少用点吧,修改如下:
#include <stdio.h>
#define max 1000
typedef int Datatype;
typedef struct
{ int i,j;
Datatype v;
}TNode; //三元组
typedef struct
{ TNode data[max];
int m,n,t;
}TTable; //三元组表
void input(TTable *a)
{int i,j,k=0;
Datatype x;
printf("请输入矩阵的行数和列数:");
scanf("%d %d",&a->m,&a->n);
for(i=0;i<a->m;i++)
for(j=0;j<a->n;j++)
{printf("输入元素值:");
scanf("%d",&x);
if(x)
{a->data[k].i=i;
a->data[k].j=j;
a->data[k].v=x;
k++;
}
}
a->t=k;
}
void output(TTable *a)
{int i,j,k;
for(i=0;i<a->m;i++)
{for(j=0;j<a->n;j++)
{for(k=0;k<a->t;k++)
if(a->data[k].i==i&&a->data[k].j==j)
break;
if(k=a->t)
printf("%5d",0);
else
printf("%5d",a->data[k