Вызов функции и выход из нее с помощью goto: утечка памяти? - PullRequest
3 голосов
/ 15 октября 2011

Если я вызову функцию и уйду из нее с помощью goto, я попаду в стек?Это как деление на ноль?Будет ли вселенная взорваться в обратном Большом взрыве?

Это не моя программа, но она имеет почти точно такую ​​же структуру ...

bool func()
{
    blah(1337.1337);
    uber("iasouhfia");
    if(random) goto escapeLadder;
}

int main(int argc, char* argv[])
{
    for(int i = 0; i < 5000000; i++)
    {
        func();
    } 
    escapeLadder:
    return 0;
}

Ответы [ 2 ]

11 голосов
/ 15 октября 2011

Согласно проекту стандарта C ++ :

"Область действия метки - это функция, в которой она появляется." (6.1. Метка оператора)

Итак, вы не можете goto поставить метку вне функции, поэтому ваш вопрос содержит синтаксическую ошибку.

0 голосов
/ 15 октября 2011

первый синтаксис неверен, второй в правильной программе не вызывает утечку памяти, потому что нет свободной памяти без свободной памяти

...