The calculation is based on the formula (for your case):
max_size = (size_t)(-1) / sizeof(BIGSTRUCT);
For an array with
1 int
(4 bytes) this yields 1,073,741,823.
For an array with
10 int
(40 bytes) this yields 107,374,182.
Unfortunately it is not based on your actual machine configuration.