如果我声明一个指针,那么类的指针成员会发生什么?

时间:2016-06-24 03:14:19

标签: c++ class pointers declaration

我写了以下代码:

#include <iostream>

using namespace std;

class Node {
public:
    int id;
    Node* n;
};

int main()
{
    Node* node;
    cout << node->n;
    return 0;
}

在这种情况下,我声明了一个指针(它是未初始化的)但在输出中我获得了一个由“n”给出的地址。如果我没有初始化指针,为什么代码会向我显示引用?。

1 个答案:

答案 0 :(得分:1)

这是一个狂野的指针。 VC编译器为这些指针分配值0xcdcdcdcd,它可能指向RAM中的最后一个内存(不确定)。你不应该取消引用这种指针,因为编译器会抛出违规内存访问。如果你不想为指针分配类型Node的对象,强烈建议你用{{指定指针。 1}} value。在这种情况下,如果指针指向真实对象或未通过检查其地址分配,您将始终能够检入代码。