Вы можете подумать, что это совпадение, что тема моего вопроса похожа на название форума, но я на самом деле попал сюда, прибегая к помощи термина "переполнение стека".
Я использую сетевой симулятор OPNET, в котором я программирую на C. Я думаю, что у меня проблема с массивами большого размера. Кажется, что я бью своего рода ограничение выделения памяти. Это может иметь отношение к OPNET, Windows, памяти моего ноутбука или, скорее всего, к языку C. Проблема возникает, когда я пытаюсь использовать вложенные массивы с общим числом элементов, равным нескольким тысячам целых чисел. Я думаю, что я превышаю общий предел выделения памяти, и мне интересно, есть ли способ увеличить этот предел.
Вот точное описание проблемы:
У меня в основном есть таблица маршрутизации. Давайте назовем это routing_tbl [n], что означает, что я поддерживаю 30 узлов (маршрутизаторов). Теперь для каждого узла в этой таблице я храню информацию. о многих (сотнях) доступных путях в массиве, называемом путями [p]. Опять же, для каждого пути в этом массиве я храню список узлов, которые ему принадлежат, в массиве с именем hops [h]. Итак, я использую как минимум nph целых чисел памяти, но эта таблица также содержит другую информацию. В той же функции я также использую другой вложенный массив, который также потребляет почти 40000 целых чисел.
Как только я запускаю симуляцию, она перестает жаловаться на переполнение стека. Это работает, когда я уменьшаю общий размер таблицы маршрутизации.
Как вы думаете, в чем причина проблемы и как ее можно решить?
Очень признателен
Али