Не удается создать большой массив внутри Dll
От: Аноним  
Дата: 10.04.03 13:24
Оценка: :)
Хочу чтобы внутри класса был член — массив структур в общей сложности размером порядка 200 кБайт. При создании объекта возникает исключение с StackOverflow. Если разместить тот же массив структур в глобальной области все нормально. Подскажите, пожалуйста, почему возникает такая ситуация.

11.04.03 15:18: Перенесено из 'C/C++'
Re: Не удается создать большой массив внутри Dll
От: BOPOH_N Россия  
Дата: 10.04.03 13:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Хочу чтобы внутри класса был член — массив структур в общей сложности размером порядка 200 кБайт. При создании объекта возникает исключение с StackOverflow. Если разместить тот же массив структур в глобальной области все нормально. Подскажите, пожалуйста, почему возникает такая ситуация.


Укажи при линковке опцию /STACK:<size>
http://veg.nm.ru/11.gifВ искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re: Не удается создать большой массив внутри Dll
От: VanKir  
Дата: 11.04.03 05:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Хочу чтобы внутри класса был член — массив структур в общей сложности размером порядка 200 кБайт. При создании объекта возникает исключение с StackOverflow. Если разместить тот же массив структур в глобальной области все нормально. Подскажите, пожалуйста, почему возникает такая ситуация.


По умолчанию под стек потока выделяется 1 Мб памяти, чтобы изменить это значение задай параметр для компоновщика /STACK:[reserve][,commit]
где reserve — объём памяти, commit — число страниц физической памяти (по умолчанию 1 страница)
Re: Не удается создать большой массив внутри Dll
От: Vamp Россия  
Дата: 11.04.03 08:18
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А вообще-то правильнее такие здоровенные объемы выделять не на стеке, а в куче.
Да здравствует мыло душистое и веревка пушистая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.