定义的数组可以不指定范围了么?解决思路

定义的数组可以不指定范围了么?
#include<stdio.h>

int main()
{
typedef int a[];
a b = {0};
int i,n;
while ( scanf("%d",&n)==1 )
{

for( i=0; i<n; ++i)
{
printf("%d ",b[i]);
}
printf("\n");

} // 目的是输入不同的n 打印出数组b中前n个元素

return 0;
}


代码如上, 在 typedef int a[] 括号里我没有给定具体数字
经过之后的代码测试,数组b是不确定长度的 或者说任意长度,请问这是什么原因呢?

------解决方案--------------------
发重了。。。
------解决方案--------------------
这里scanf("%d",&n)==1永远成立,看看scanf函数的返回值是神马,所以无论你输入神马数字,只要只输入一个,都要循环