想问一下这个杨辉三角的代码哪里错了

#include
void main()
{
int m=0,n=0,a[5][5];
for(m=0;m<6;m++)
{
a[m][0]=1;
a[m][m]=1;
}
for(m=2;m<6;m++)
{
for(n=1;n
{
a[m][n]=a[m-1][n]+a[m-1][n-1];
}
}
for(m=0;m<6;m++)
{
for(n=0;n<=m;n++)
{
printf("%5d",a[m][n]);
}
printf("\n");
}
}

运行出来的黑框没有字

for(m=0;m<6;m++)
{
a[m][0]=1;
a[m][m]=1;
}
这会越界的啊,数组大小就5个,你这个for循环执行6次