Можете ли вы установить размер стека вызовов в C ++? (VS2008)

StackOverflow https://stackoverflow.com/questions/625416

  •  05-07-2019
  •  | 
  •  

Вопрос

Я работаю над примером кода, который выделяет относительно большой локальный массив. (32768, если быть точным) Когда я пытаюсь сделать то же самое, я получаю поведение, которое кажется переполнением стека. Теперь мне было интересно, если мой пример может установить стек больше, чем мое приложение. Это возможно? если так как?

Это было полезно?

Решение

С помощью компилятора Microsoft вы можете использовать / F , чтобы установить размер стека, однако кажется, что вы должны просто выделить объект в куче. У вас должна быть причина, по которой вы размещаете это в стеке, а не в куче.

Изменить: Эта страница дает хороший перекрестный обзор. поломка платформы, хотя она может быть датирована.

Другие советы

Вы можете использовать флаг компилятора / F для установки размера стека по умолчанию или указать его в качестве второго параметра для функция CreateThread .

Вместо того, чтобы связываться с размером стека, почему бы вам просто не использовать std :: vector или даже не динамически выделять массив самостоятельно?

Вы можете создать новую тему для этой работы. Как правило, вы можете указать размер стека при создании потока, и, конечно, с помощью функции CreateThread () v / 2008

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top