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