私はC++が新しく、ポインタを使って値を返すことを実験しています。私はシンプルなプログラムを書きましたが、なぜクラッシュするのか理解できません。あなたはそれがランダムメモリで指すように、main()
でpMyBool
を初期化し、しませんポインタを使用して値を返す - プログラムがクラッシュする
main.cppに
int main() {
bool *pMyBool;
bar myBar;
myBar.foo(pMyBool);
cout << *pMyBool << endl;
return 0;
}
bar.cpp
int bar::foo(bool *pMyBool) {
bool myBool = true;
*pMyBool = myBool;
return 0;
}
出力
1
//then it crashes
から呼ぶことにしますもう一度見て、実際には、これはプログラムがクラッシュする理由が間違っています。 –
これは問題ではありません。パラメータによって指される変数に(aのコピー)ローカル値を割り当てていますが、パラメータがどこか有効であるように初期化されていません。 –