-2
我不明白什么是在内存中发生这种情况:在堆栈上创建对象时分配的内存在哪里?
int main(int argc, char** argv) {
Ninja n; //create a object on the stack?
Ninja * n = new Ninja; //create a pointer the the object on the heap?
return 0;
}
的区别是什么?
是的,第一个在堆栈中,第二个在堆中 – Martin
事先已知的变量和对象被放到堆栈中。在执行期间动态创建的变量和对象放在堆上。 – kometen
所以这实际上是运行时(在执行期间在堆上创建一个对象),并编译时间在行动? –