调用一个函数并使用goto:内存泄漏来转义它?

时间:2011-10-15 04:15:27

标签: c++ memory-leaks recursion stack goto

如果我调用一个函数,并用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 个答案:

答案 0 :(得分:11)

根据draft C++ standard

“标签的范围是它出现的功能。”(6.1标记声明)

因此,您不能goto到函数外的标签,因此您的问题包含语法错误。

答案 1 :(得分:0)

第一种语法不正确 在正确的程序中,它不会导致内存泄漏,因为没有空闲内存就没有分配内存