Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Вованя
125 / 125 / 47
Регистрация: 20.02.2014
Сообщений: 443
#1

Stack overflow - C++

20.03.2014, 16:59. Просмотров 541. Ответов 2
Метки нет (Все метки)

Реализовал структуру данных стек на связном списке, очистку решил возложить на деструкторы узлов, т.е. каждый вызов деструктора узла вызывает деструктор следующего узла.
Правильно ли я понимаю, что при таком методе очистки ресурсов, если количество узлов какое-то, например, огромное, количество деструкторов на стеке превысит какое-то определенное количество и произойдет stack overflow?
C++
1
2
3
4
5
6
7
8
9
10
private:
    struct node
    {
        node():next(0){}
        ~node(){ delete next; }
        int value;
        node *next;
    };
    node *head;
    size_t count;
И соответственно в деструкторе класса
C++
1
delete head;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 16:59     Stack overflow
Посмотрите здесь:

Stack overflow. - C++
У меня в программе есть реверсивная функция (много параметров) она вызывает себя очень много раз. Во время выполнения программы возникает...

Переполнение (Stack overflow) - C++
Подскажите, пожалуйста, почему при перемещении int n, a, k; в локальную область программа при открытии консоли выдаёт ошибку и не работает,...

Почему stack overflow? - C++
Почему приведенный ниже код сразу же приводит к переполнению стека? int _tmain(int argc, _TCHAR* argv) { unsigned lоng...

Непонятный Stack Overflow - C++
Здравствуйте, уважаемые форумчане.Столкнулся с непонятной мне проблемой при решении одной лёгкой олимпидной задачи. Вот условие...

Stack overflow с тернарным оператором - C++
Так работает: unsigned long Ly(const string &s) { ... } unsigned long Rs(const string &s) { ... } unsigned long(*F)(const string...

Возникает ошибка Stack overflow - C++
Задача должна рассчитывать функцию рекуррентного сложения. Но возникает ошибка "Stack overflow". Пытался ставить double, long int - не...

Обработка исключений stack overflow - C++
Помогите... Опишите функцию умножения двух чисел с плавающей запятой, обработайте ошибку переполнения сверху (overflow).

Stack Overflow, перегруз буфера - C++
Добрый день, знаком с перегрузом буфера в теории, хотел бы перейти к практике. Написал простенькую программу, int main(int argc) ...

Quicksort - исключение stack overflow - C++
Алгоритм сортирует таблицу со случайными числами на 100тыс, 500тыс, 1млн, но при сортировке уже отсортированной таблицы или таблицы обратно...

Ошибка исполнения Stack overflow - C++
Решил написать что-то вроде стратегии в консоле, но в итоге застрял в самом начале ( не могу найти нормальный способ сравнивать строки, уже...

Bitset<8388608> - Stack overflow - C++
Пишу: bitset&lt;8388608&gt; hash; // (256^2)/2 Ошибка: Stakc overflow (ОЗУ&gt;3 Гб, но как я понял приложение не может пользоваться больше...

Разобраться с рекурсией: stack overflow - C++
#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;string&gt; #include&lt;math.h&gt; #include&lt;cmath&gt; #include&lt;algorithm&gt; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.03.2014, 18:09     Stack overflow #2
Вованя, для стека это плохо.

Добавлено через 37 секунд
Вованя, все зависит от глубины рекурсии и размера стека. Т. е. от задачи. А так читай выше.
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
20.03.2014, 18:28     Stack overflow #3
забавно, никогда не задумывался на такую тему. попробовал сделать как у автора. сделал 10кк объектов, ссылающихся на следующий за собой. вызвал
C++
1
delete head;
упало уже 2160-ом вызове.
при этом если удалять так
C++
1
2
3
4
5
6
for(int i=0; i<9999999; ++i)
    {
        T *next = head->next;
        delete head;
        head = next;
    }
то вроде нормально
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru