调用函数并使用 goto 转义:内存泄漏?

发布于 2024-12-09 20:10:17 字数 358 浏览 2 评论 0原文

如果我调用一个函数,并使用 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;
}

If I call a function, and escape it with a goto, will I be leaking onto the stack? Is that like dividing by zero? Will the universe implode in a reverse-Big-Bang?

This is not my program, but it has almost exactly the same structure...

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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掀纱窥君容 2024-12-16 20:10:17

根据 C++ 标准草案

< em>“标签的范围是它出现的函数。”(6.1 带标签的语句)

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

According to draft C++ standard:

"The scope of a label is the function in which it appears." (6.1 Labeled statement)

So, you can't goto to a label outside the function, hence your question contains a syntax error.

水中月 2024-12-16 20:10:17

第一个语法不正确
正确程序中的第二个它不会造成内存泄漏,因为没有空闲内存就没有分配内存

first syntax is incorrect
second in right program it does not make memory leak because the is no memory allocated without free memory

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文