次の2つのコードを比較してください。
1.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.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マシンを実行しています。
それは本当に私を混乱させます。誰か教えてもらえますか?