@McLuhan
To explain the situation, you must realize that when you declare something outside a method, you are creating a global variable. The RAM for global variables is coming from what is left over after the stack and other memory allocations take place. So, if you decrease your stack size, you're increasing the amount of RAM that's "left over" leaving you with more space for your array.
I should point out that an "int" array of 2x68 is not of insignificant size for a microcontroller. It's 544 bytes and that must be contiguous - so, you could find that adding additonal (smaller) variables didn't have the out of memory problem which might have added to your confusion.
Traditional systems have essentially unlimited memory (I'm being a bit facious and overly simplifying the memory management functions of the operating system but for all intents and purposes it's a true statement) and issues like this simply won't happen. In microcontrollers, like the Kinetis, you must have a reasonabley good understanding of how memory is organized into different buckets as well as how things like variables are allocated memory within the overall scheme as well as the different buckets (like stacks).