为什么我编程的时候没有语法错误,运行的时候老是弹出:应用程序发生异常 unknown software exception(0xc00000fd),位置为0x00401787。 
大家可以看一个我编写的程序: 
#include<stdio.h> 
#define MAXSIZE 12500 
typedef struct{ 
int i,j; 
int e; 
}Triple; 
typedef struct{ 
Triple data[MAXSIZE+1]; 
int mu,nu,tu; 
}TSMatrix; 
/*创建并初始化一个稀疏矩阵*/ 
TSMatrix CreateSMatrix(int mu,int nu,int num) 


TSMatrix T; 
int i,h,l,elem; 
T.mu=mu,T.nu=nu;T.tu=num; 
printf("请输入矩阵的行,列以及非零元素的值:\n"); 
for(i=1;i<=num;i++) 

scanf("%d%d%d",&h,&l,&elem); 
T.data[i].i=h; T.data[i].j=l; T.data[i].e=elem; 


return T; 


/*打印矩阵*/ 
void print(TSMatrix *T,int num) 

int i; 
printf("矩阵为:\n"); 
for(i=1;i<=num;i++) 

printf("%d %d %d\n",T->data[i ].i,T->data[i].j,T->data[i].e); 




/*直接矩阵转置*/ 
TSMatrix TransposeSMatrix(TSMatrix *M) 

int col,s,t; 
TSMatrix T; 
TSMatrix *at_T=&T; 
T.mu=M->nu;T.nu=M->mu;T.tu=M->tu; 

if(T.tu) 

t=1; 
for(col=1;col<=M->nu;++col) 
for(s=1;s<=M->tu;++s) 
if(M->data[s].j==col) 

T.data[t].i=M->data[s].j; 
T.data[t].j=M->data[s].i; 
T.data[t].e=M->data[s].e; 
++t; 



return T; 

/*快速矩阵转置*/ 
TSMatrix FastTransposeSMatrix(TSMatrix M) 

int t,col,p,q,num[100],cpot[100]; 
TSMatrix D; 
D.mu=M.nu;D.nu=M.mu;D.tu=M.tu; 


if(M.tu) 

for(col=1;col<=M.nu;col++) num[col]=0; 
for(t=1;t<=M.tu;t++) ++num[M.data[t].j]; 
cpot[1]=1; 
for(col=2;col<=M.nu;col++) 
cpot[col]=cpot[col-1]+num[col-1]; 
for(p=1;p<=M.tu;p++) 

col=M.data[p].j;q=cpot[col]; 
D.data[q].i=M.data[p].j; 
D.data[q].j=M.data[p].i; 
D.data[q].e=M.data[p].e; 
++cpot[col]; 


return D; 




/*主调函数*/ 
void main() 

int num,mu,nu; 
TSMatrix *p,*q;TSMatrix x,y,z; 
printf("请输入行数、列数及非零元素的个数:\n"); 
scanf("%d%d%d",&mu,&nu,&num); 
while(num<1||num>MAXSIZE) 

printf("\n输入违法!请重新输入:\n"); 
scanf("%d%d%d",&mu,&nu,&num); 

x=CreateSMatrix(mu,nu,num); 
p=&x; 
printf("你创建的"); 
print(p,num); 

printf("直接转置后的"); 
y=TransposeSMatrix(p); 
q=&y; 
print(q,num); 

printf("原"); 
print(p,num); 

printf("快速转置后的"); 
FastTransposeSMatrix(x); 
q=&z; 
print(q,num); 

}