c++ - 为什么运行时堆栈对象的实例变量与堆对象不同?

标签 c++ object runtime heap-memory instance-variables

可能还有其他例子,但这是我刚刚遇到的一个。

#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/

相关文章:

python - Pygame 分发 - 运行时错误

c++ - 动态创建的数组

c++ - 模板化(或以某种方式自动)方法的返回值

javascript - 是否有类似的方法来创建没有原型(prototype)的数组?

javascript访问带有变量名的对象

javascript - 将 HTML 绑定(bind)到 JavaScript 的其他方法

c++ - Visual Studio C 性能

c++ - 调用 cv::stereoBM 构造函数时出错

c# - 防止 C# 子类覆盖方法

algorithm - 运行长度编码