可能还有其他例子,但这是我刚刚遇到的一个。
#include <iostream>
using namespace std;
class Student
{
public:
int x;
};
int main()
{
Student rts;
Student* heap = new Student;
cout << rts.x << endl; // prints out random integer
cout << heap->x << endl; // prints out 0
}
这背后有什么好的理由或逻辑可以理解吗?
最佳答案
在这种情况下,我认为堆已经在分配的内存中归零只是巧合。
您可以在 this similar question 的答案中阅读更多内容
关于c++ - 为什么运行时堆栈对象的实例变量与堆对象不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17365154/