我有一个相对简单的问题。在我的一个 CS 课程中,为了完成一项作业,我们必须使用 C++ 和 XLib 库制作一个简单的横向卷轴游戏。在我们为班级开设的论坛中,很多学生抱怨内存泄漏和动态分配问题。我几乎完成了任务,但我不必使用任何动态分配。我一直在使用堆栈空间,到目前为止还没有遇到任何问题。
我只是想知道这是否有任何缺点?似乎很多其他学生都在使用动态分配。如果我的小游戏仅使用堆栈就可以正常工作,我有什么理由担心吗?
多谢你们。
我有一个相对简单的问题。在我的一个 CS 课程中,为了完成一项作业,我们必须使用 C++ 和 XLib 库制作一个简单的横向卷轴游戏。在我们为班级开设的论坛中,很多学生抱怨内存泄漏和动态分配问题。我几乎完成了任务,但我不必使用任何动态分配。我一直在使用堆栈空间,到目前为止还没有遇到任何问题。
我只是想知道这是否有任何缺点?似乎很多其他学生都在使用动态分配。如果我的小游戏仅使用堆栈就可以正常工作,我有什么理由担心吗?
多谢你们。
在堆栈上使用内存本身并没有错,尽管您需要小心分配任何大小合适的东西。
例如:
// inside some function ...
int blah[1000];
// ...code using blah
可能工作正常,或者您可能会用完空间并静默失败。
如果您需要大量内存,我建议使用new
/ ,但在堆栈上使用小数组很好。malloc()
如果您非常担心动态内存分配和内存泄漏,为什么不尝试使用智能指针:
这里http://en.wikipedia.org/wiki/Smart_pointer#C.2B.2B_smart_pointers