これを実行すると、完全に "2"が出力されます。なぜ初期化されていないポインタに整数値を割り当てることができますか
int main()
{
int *p;
int x = 2;
*p = x;
cout << *p;
}
しかし、* pを最初に初期化してnullになると、プログラムがクラッシュします。
私は最初のプログラムにも成功した最初の場所で実行されないものをお願いしたいと思いますint main()
{
int *p=0;
int x = 2;
*p = x;
cout << *p;
}
、なぜ値が初期化されていないポインタに割り当てることができますか?
[編集]私の質問は、実際に私が得たこの過去の試験問題に関連しています。あなたは複数の答えに目を通すことができ、(b)&(c)の両方が正しいと思われます。しかし、今私は作品が純粋に運のためであるかどうかを知っています。
初期化されていないポインタを使用しないでください。また、ポインタ変数を参照を追加するまでポインタ変数を逆参照しないでください。それ以外の場合は結果が得られます。 –