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

Вопрос о стеке - C++

Восстановить пароль Регистрация
 
Творец
Сообщений: n/a
28.03.2010, 01:42     Вопрос о стеке #1
На сколько я знаю, подпрограмма которая выполняется рекурсивно, кидает в стек копию своих параметров, и так пока стек не переполнится...
У меня такая штука:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void f(int i){
char num;
do{
...
num=getch();
switch(num){
     case 'A':
          f(i+1);
          break;
     ...
}while(num!='Q');
}


Короче подпрограмма через свич вызывает сама себя, от нажатия кнопки клавы. И если 5 раз выполнять например case 'A', а потом нажать Q, то цикл не прекратится, чтобы это случилось, надо будет нажать Q еще 4 раза...

- Что надо сделать чтобы цикл всегда завершался при 1 нажатии Q ???

Добавлено через 18 минут
Может можно как-то стек очистить? Или переменную num?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2010, 01:42     Вопрос о стеке
Посмотрите здесь:

C++ Определить количество элементов в стеке
Выполнение кода в стеке C++
Задача на MINIMUM в стеке C++
C++ Структура в стеке
C++ Выделение памяти на стеке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
28.03.2010, 01:44     Вопрос о стеке #2
возможно передавать в качестве параметра указатель или ссылку на буль
C++
1
2
3
4
5
6
7
8
9
void f(int i, bool &bIsEnd){
if( false == bIsEnd ){
  num=getch();
  ....
  if( num=='Q'){
    bIsEnd = true;
    return;
...
}
вообщем вам полюбому понадобится какаята глобальная переменная, желательно в таком виде

+
не задумывайтесь на таком уровне о стеке, он есть, но не на уровне программы с++))
Творец
Сообщений: n/a
28.03.2010, 01:57     Вопрос о стеке #3
Спасибо огромное) !!!
С этим я разобрался, а все же, как можно очистить стек в C/C++ ???
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
28.03.2010, 03:10     Вопрос о стеке #4
зачем его очищать, стек очень тонкая натура, малейшая его неправильная модификация приведет к моментальному краху программы
что вы хотите?
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
28.03.2010, 11:39     Вопрос о стеке #5
На всякий случай напомню, что при выходе из функции со стека автоматически вычищается всё, что она там назанимала.
Yandex
Объявления
28.03.2010, 11:39     Вопрос о стеке
Ответ Создать тему
Опции темы

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