Да, массив, объявленный в области действия функции как автоматическая переменная, будет выделен из стека. Вы хотите быть осторожными при этом, так как вы никогда не можете быть уверены в вызывающем контексте, будет ли достаточно стекового пространства для успеха. Хотя Windows по умолчанию создает стеки размером 1 МБ для потоков, а Linux по умолчанию создает стеки размером 8 МБ, вы все равно можете столкнуться с проблемой при создании больших массивов структур. В некоторых операционных системах стек потоков может составлять всего несколько килобайт.
Я склонен ограничивать автоматические переменные области действия функции простыми скалярными типами и помещать в кучу большие абстрактные типы и массивы.