繁体   English   中英

如果我声明一个指针,则该类的指针成员会怎样?

[英]What happen with the pointer members of a class if I declare a pointer?

我写了以下代码:

#include <iostream>

using namespace std;

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM