这个网站上有很多关于堆栈和堆的问题。但我想知道编译器实际上是如何管理堆栈的?基于堆栈的分配是在运行时还是编译时决定的?考虑以下示例:
#include <iostream>
using namespace std;
class Test {
// Test class' data members
public:
// member functions
};
int main() {
Test t; // automatic object
// use t here
return 0;
}
这里的问题是何时分配对象 t?内存将在编译时或运行时分配?我知道局部变量,对象在函数被调用时被分配并在函数终止时被销毁。