运行不出来,没有结果,求检查

#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
#define maxsize 120
typedef struct
{
int row,col;
datatype e;
}triple;
typedef struct
{
triple data[maxsize+1];
int m,n,len;
}tsmatrix;
void tsmatrixcreate(tsmatrix * table);
int main()
{
tsmatrix * table;
table->n=5;
table->m=5;
table->len=7;
table->data[0].row=1;
table->data[0].col=4;
table->data[0].e=5;
table->data[1].row=3;
table->data[1].col=1;
table->data[1].e=6;
table->data[2].row=3;
table->data[2].col=1;
table->data[2].e=6;
table->data[3].row=4;
table->data[3].col=2;
table->data[3].e=3;
table->data[4].row=2;
table->data[4].col=5;
table->data[4].e=1;
table->data[5].row=3;
table->data[5].col=3;
table->data[5].e=9;
table->data[6].row=4;
table->data[6].col=4;
table->data[6].e=2;

tsmatrixcreate(table);
return 0;

}
void tsmatrixcreate(tsmatrix * table)
{
for(int row=1;row<=table->m;row++)
{
for(int col=1;col<=table->n;col++)
{
int value=0;
for(int k=0;klen;k++)
{
if(row==table->data[k].row&&col==table->data[k].col)
{
printf("%d",table->data[k].e);
value=1;
break;
}
}
if(value==0)
printf("0 ");
}
printf("\n");
}
}

你好,你的代码逻辑我没仔细看,看出来两个问题
1.tsmatrixcreate函数里有一个for循环应该是

for(int k=0;k<table->len;k++)

2.最主要的是main函数里在给table赋值前没有初始化,没申请分配内存:

tsmatrix * table;
table=(tsmatrix *)malloc(sizeof(tsmatrix));
table->n=5;  
......