Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=2856615&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 05:44:21 2016
Кодировка: Windows-1251
как в си билдере задать размер стека? i love stack overflow error - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
audel
stranger

Рег.: 02.03.2005
Сообщений: 20
Рейтинг: 0
  как в си билдере задать размер стека? i love stack overflow error
      14.05.2005 04:58
 

как в си билдере можно задать размер стека, для моей проги он нужен не***во огромный.
(расположение квадратов на плоскости, все меры конечны: размеры и кол-во),так что бы незаполненная площадь была минимальной.(перебор на 2-х матрицах)



Редактировал DarkGray (14.05.2005 13:09)
Basilio
GreenOne

Рег.: 14.10.2002
Сообщений: 13750
Из: Москва
Рейтинг: 3476
  Re: i love stack overflow error [re: audel]
      14.05.2005 06:48
 

Типичное место, когда возникает переполнение стека - функция с офигенно большой локальной переменной:
code:
int func(...) { int DATA[10000*10000]; }
Это требует 400Мб на стеке. Такая ситуация? Если да - то делать через динамику (new/delete <-> malloc/free). Статические массивы рулят только до размеров 4Кб.

Если рекурсия глубокая - можно подправить стек в компиляторе. но я бы советовал развернуть рекурсию в цикл и использовать искусственный стек.
Если прога требует больше 10Мб на стек - значит, нездоровое проектирование.

Про билдер не знаю, но в Delphi это делается тут:






Редактировал Basilio (14.05.2005 06:50)
__ka
Nobrainer

Рег.: 20.11.2004
Сообщений: 533
Рейтинг: 45
  Re: i love stack overflow error [re: Basilio]
      14.05.2005 09:35
 

Если не секрет, чем так уж плох большой stack. Ведь реальная-то память все равно будет выделяться только при использовании ее, а за%?*ание адресного пространства...use 64-bit, Luke!



#warning "You should include <sys/socket.h>. This time I will do it for you."
psa
sir

Рег.: 03.04.2004
Сообщений: 1205
Рейтинг: 509
  Re: i love stack overflow error [re: Basilio]
      14.05.2005 10:01
 

оффтоп, очень порадовало ограничение памяти в баксах



Antivirus alert: file .signature infected by signature virus.
KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: i love stack overflow error [re: psa]
      14.05.2005 10:30
 

limit = $1000000


---
"Powered by Motorollah!"

DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: i love stack overflow error [re: audel]
      14.05.2005 12:08
 

Переписать алгоритм так, чтобы юзалась своя коллекция-stack, а не рекурсия.

KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: i love stack overflow error [re: DarkGray]
      14.05.2005 12:56
 

Правильно это называется так: разместить стек в куче.
В добавок --- по кускам.

ОС отрабатывает его настолько плохо, что надо делать это руками?


---
Q21: что такое Win2k?
A21: состема.

DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: i love stack overflow error [re: KOHTPA]
      14.05.2005 13:03
 

При чем здесь ОС?

"Чистые"(на основе системного стека) рекурсивные алгоритмы - очень плохо управляемые, т.к. системный стек - очень закрытый, и имеет мало поддерживаемых операций над собой.

Для нормальной управляемости не хватает таких операций, как:
1. Получение информации, чего и сколько уже есть в стеке
2. Массовая вставка
3. Массовое удаление
4. Удаление из середины
5. Сохранение/восстановление стека
6. выгрузка части стека из памяти


KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: i love stack overflow error [re: DarkGray]
      14.05.2005 13:14
 

Стек с удалением из середины?
Зачем тебе это??
Ты ж, вроде, насильник.

Выгрузкой стека из памяти, как и вообще выгрузкой памяти,
вообще-то, заведует ОС.

Остальное --- не нужно.

Всем этим заведует ОС.
Если последняя поддерживает только си, тем хуже для всех.
И для сей, и для ОС.


---
...Я работаю антинаучным аферистом...

DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: i love stack overflow error [re: KOHTPA]
      14.05.2005 14:03
 

> Стек с удалением из середины?

Для выполнения "незапланированных" задач, которых в реальных задачах, а не в учебных - довольно много.

Например, во время обхода дерева в глубину - необходимо удалить часть дерева.


> Остальное --- не нужно.

Кому не нужно?
Студентам, которые привыкли решать свои задачи про коней в вакууме?

Как ты собираешься:
Выполнять прерывание программы, например, чтобы продолжить обсчет не сейчас, а чуть позже?
Разнесить обсчет по нескольким процессам?
выводить информацию - что уже обработано, что стоит в очереди на обработку?
Делать приоритетный обсчет, когда "узлы" не равноценные?
Делать быстрый backtracking?


KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: i love stack overflow error [re: DarkGray]
      14.05.2005 14:48
 

А выходить из вложенных вызовов слабо?
(Кстати, вы, насильники, setjmp/longjmp себе придумали для этого.)

Если бы это было нужно, то в практических языках,
к которым ты относишь си и производные от него,
были бы равноправные продолжения.
Последнего не наблюдается.

Отсюда вывод: либо это не нужно,
либо си-подобные языки не являются практическими,
а существуют только как учебные для студентов.


---
...Я работаю антинаучным аферистом...

DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: i love stack overflow error [re: KOHTPA]
      14.05.2005 15:03
 

В практических языках есть класс CStack - который все вышеприведенные операции поддерживает.

KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: i love stack overflow error [re: DarkGray]
      14.05.2005 15:13
 

И он работает с системным стеком, а не выделяет место в куче?


---
...Я работаю антинаучным аферистом...

DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: i love stack overflow error [re: KOHTPA]
      14.05.2005 16:29
 

И так, и так - в зависимости, от настроек и реализации.

KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: i love stack overflow error [re: DarkGray]
      14.05.2005 16:37
 

То есть, все-таки это игрушка для студентов.
Иначе оно делалось бы на системном стеке, для которого есть
аппаратная поддержка со стороны оборудования и программная ---
со стороны ОС.


---
...Я работаю антинаучным аферистом...

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в