expected constant expression?

Hello, newbie here.

Just started euler problems to get better acquainted with C. The first problem is this-

Quote:

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

So here is my program-

Code:

`#include <stdio.h>`

int main()

{

int _MAX = 1000;

int nums[_MAX] = {0};

int checkers[] = {3,5};

int k = 0;

int len = sizeof(checkers)/sizeof(int);

int sum = 0;

int checker;

for(k = 0; k < len; k++)

{

checker = checkers[k];

sum = 0;

while(sum+checker <= _MAX)

{

sum += checker;

nums[sum] = 1;

}

}

sum = 0;

for(k = 0; k < _MAX; k++)

{

if(nums[k])

sum += k;

}

printf("%d", sum);

getchar();

return 0;

}

This compiles with an error-

main.c(6): error C2057: expected constant expression

main.c(6): error C2466: cannot allocate an array of constant size 0

which is line

Code:

`int nums[_MAX] = {0};`

If I change _MAX here to 1000 everything works and I get the right answer. What is wrong and how do I fix this? I tried google but got more confused.