比较以下两段代码:
1.
#include <iostream>
using namespace std;
class B{
public:
int val;
};
int main(){
B *b;
int t = 0;
b->val = 1;
cout << 123 << endl;
return 0;
}
2.
#include <iostream>
using namespace std;
class B{
public:
int val;
};
int main(){
B *b;
b->val = 1;
cout << 123 << endl;
return 0;
}
两个版本都编译。代码 #1 运行良好,但代码 #2 出现运行时错误。
我正在使用 C++11 编译并运行 Windows 机器。
这真的让我很困惑。谁能告诉我原因?