Related but not quite duplicate as it discusses C++:
can we give size of static array a variable
I am definin
You can't define any array of variable size. That's because arr[siz] makes the compiler (!) allocate memory for your array (well, the compiler creates a program, that .., but let's not stray into details). However, variables can be changed at runtime (!) which means the compiler has no chance of knowing how much memory to allocate.
What you can do is
static int* arr;
arr = (int*) calloc(siz,sizeof(int))
These lines result in a program that allocates memory at runtime, therefore it's exact size may be defined at runtime as well.