最近解決されたバグがありましたが、その理由を理解したいと思います。私はC++ 11を使ったcmakeプロジェクトを持っています。なぜオブジェクトへのポインタを返すのはいつかしか動作しませんか?
これはmac osxでは動作しますが、ubuntuでは動作しません。 ubuntuではnullを返します。
obj *getPointer(){
obj test = obj(1,2,3);
return &test;
}
これは両方で動作します:あなたが出口で破壊されautomatic storage durationを持つローカルオブジェクトobj test
のアドレスを返却するよう
obj *getPointer(){
obj* ptr;
obj test = obj(1,2,3);
ptr = &test
return &ptr;
}
警告をエラーとして有効にし、コンパイルしていないことを確認する必要があります。 –