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

Как можно сделать переполнение стека - C++

Восстановить пароль Регистрация
 
Jman
 Аватар для Jman
27 / 27 / 3
Регистрация: 11.10.2015
Сообщений: 271
Завершенные тесты: 1
29.09.2016, 09:11     Как можно сделать переполнение стека #1
Всем привет, ребята, есть у меня код с микрософта, как переполнить стек. Но беда, не понимаю кое что, напишу в комментариях.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void StackOverflow(int value)
{
    char dataArray[10000];                 // Вроде бы массив с заданным размером. Каким образом он используется
    cout << "Overflow: " << value << endl; // В рекурсии данной функции?
    Sleep(20);
    StackOverflow(value + 1); // рекурсия; И тут мы при каждом новом вызове прибавляем к value 1
}                                           // Какое отношение это имеет к dataArray[10000]?
 
 
int main(int argc, char* argv[])
{
    StackOverflow(0);
    system("pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2016, 09:11     Как можно сделать переполнение стека
Посмотрите здесь:

Переполнение стека C++
Рекурсия - переполнение стека C++
Переполнение стека C++
C++ Быстрая сортировка. Переполнение стека
C++ Переполнение стека
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
29.09.2016, 09:13     Как можно сделать переполнение стека #2
Цитата Сообщение от Jman Посмотреть сообщение
Какое отношение это имеет к dataArray[10000]?
Никакого. Просто считаем количество рекурсивных вызовов функции.
Цитата Сообщение от Jman Посмотреть сообщение
Каким образом он используется
В рекурсии данной функции?
Просто занимает место. Занимаем больше места -> стек переполняется быстрее.
Jman
 Аватар для Jman
27 / 27 / 3
Регистрация: 11.10.2015
Сообщений: 271
Завершенные тесты: 1
29.09.2016, 09:16  [ТС]     Как можно сделать переполнение стека #3
Стек в данном случае подразумевается не как структура данных, а как область памяти?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
29.09.2016, 09:23     Как можно сделать переполнение стека #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
https://ru.wikipedia.org/wiki/%D0%A1...B2%D0%BE%D0%B2
https://habrahabr.ru/company/smart_soft/blog/234239/
Jman
 Аватар для Jman
27 / 27 / 3
Регистрация: 11.10.2015
Сообщений: 271
Завершенные тесты: 1
29.09.2016, 09:27  [ТС]     Как можно сделать переполнение стека #5
Все понятно, область данных процессора куда пишутся значения, когда возникает прерывание по определенному вектору. Когда выходит из перывания, берет сохраненные данные из стека. Либо при переключении между задачами. Простым языком. Спасибо за "тык"!
Yandex
Объявления
29.09.2016, 09:27     Как можно сделать переполнение стека
Ответ Создать тему
Опции темы

Текущее время: 07:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru