【问题标题】:Dynamic allocation vs using the stack动态分配与使用堆栈
【发布时间】:2023-04-02 14:46:02
【问题描述】:

我有一个相对简单的问题。在我的一个 CS 课程中,为了完成一项作业,我们必须使用 C++ 和 XLib 库制作一个简单的横向卷轴游戏。在我们为班级开设的论坛上,很多学生抱怨内存泄漏和动态分配问题。我几乎完成了任务,但我不必使用任何动态分配。我一直在使用堆栈空间,到目前为止还没有遇到任何问题。

我只是想知道这是否有任何缺点?似乎很多其他学生都在使用动态分配。如果我的小游戏仅使用堆栈就可以正常运行,我有什么理由担心吗?

谢谢大家。

【问题讨论】:

    标签: stack dynamic-allocation


    【解决方案1】:

    在堆栈上使用内存本身并没有错,但您需要小心分配任何大小合适的东西。

    例如:

    // inside some function ...
    int blah[1000];
    // ...code using blah
    

    可能工作正常,或者您可能会用完空间并静默失败。

    如果您需要大量内存,我建议使用new / malloc(),但在堆栈上使用小数组也可以。

    【讨论】:

      【解决方案2】:

      如果您非常担心动态内存分配和内存泄漏,何不尝试使用智能指针:

      这里http://en.wikipedia.org/wiki/Smart_pointer#C.2B.2B_smart_pointers

      【讨论】:

        猜你喜欢
        • 2012-03-02
        • 2011-10-06
        • 1970-01-01
        • 2019-05-17
        • 1970-01-01
        • 2012-03-19
        • 1970-01-01
        • 2020-09-15
        • 2011-05-28
        相关资源
        最近更新 更多