Does it have to fit in a single block?
Pushing into it or groupings of computation and storage do have to fit in a single block. For instance, looping the entirety of an array that has a million members will run out of gas in a block. The number of loops that can be done is also dependent on the computation occurring in each loop too. If you have a few lines of code in each loop that burn a lot of gas, then you will be able to loop fewer times before reaching the
block gas limit.
But the total size can be
2^256 32 byte words which you will never have or be able to afford.