为什么-1在C++中变成-842150451?

Ter*_*iao -10 c++

struct myclass {
    int id;
    myclass(): id(-1){};
};

myclass *a;
cout >> a->id;
Run Code Online (Sandbox Code Playgroud)

以上是我的长程序的演示.输出应为-1.但我不知道为什么输出变成-842150451.

sco*_*001 7

你有未定义的行为!

您创建一个myclass指针,但从不指向任何东西.然后你尝试取消引用悬空狂野指针.

试试这个来获得你期望的-1:

myclass a;
std::cout << a.id;
Run Code Online (Sandbox Code Playgroud)