このスニペットのどこに問題があるかを知ることができます:
関数内のポインターをリセットしたいのですが、ポインターを返すだけで機能するようになりましたが、副作用(ポインター渡し)で作成できませんでした。
void function(Object * obj)[{
obj = new Object();
cout << obj << endl;
//return obj;
}
main(){
Object * obj = 0;
function(obj);
cout << obj << endl;
}
この場合、結果は次のようになります。
0x12345678
0
あるべきだったのに
0x12345678
0x12345678
ポインターのポインターまたは参照のポインターのいずれかを使用してみましたが、それでも関数を通過できませんでした。値を返すだけで、魅力のように機能しました。しかし、いくつかのパラメーターでこれを行う必要があり、コードはここに表示されているよりもはるかに複雑です。