次のコードで間違いを見つけなければなりません。それはどれですか?関数を使用したオブジェクトの作成C++
-1
A
答えて
2
スタックからアドレスを返します。
1
一時オブジェクトをスタックに作成し、そのオブジェクトへのポインタを返します。機能が終了した後にはそれが存続する保証はありません。
2
この関数の呼び出し元は、呼び出した後に何を行いますか?
t
の有効期間はいつですか?終了日はいつですか?
これらの両方がどのようにして不幸な結果につながりますか?
t
は、関数のローカルなので、閉じ括弧で右に消滅します。返されたポインタはまったく使用できませんが、それは呼び出し元がおそらく実行するものであり、未定義動作を引き起こします。
1
あなたはあなたが関数から戻ったときにスコープから外れている、tにポインタを返すしている機能
1
の終わりに存在していないローカルオブジェクトにポイントを戻ってきています。関数の中に新しいポインタを作成し、それを返す必要があります。
cObject *t = new cObject();
return t;
+1
参照ではなくポインタ –
関連する問題
- 1. 関数を使用したJavascriptオブジェクトの作成
- 2. c#で関数を使って作成したオブジェクトにアクセスする方法
- 3. 関数パラメータを使用してオブジェクトを作成する
- 4. C++を使用してトゥイーン関数を作成しますか?
- 5. マップを使用したオブジェクト関数からの配列の作成
- 6. 、私は、関数の外で別の変数を使用する変数を作成したい関数C#
- 7. C++クラス/オブジェクト関数の使用クエリ
- 8. Python関数オブジェクトの作成
- 9. JSON ASP.NET Webサービスを使用した複数のオブジェクトの作成
- 10. は、アドインExcel用私はオートメーションを作成したC#関数
- 11. C#の関連オブジェクトのセットから複数のツリーを作成
- 12. kill関数を使用したゾンビプロセスの作成
- 13. 集計関数を使用したSQLクエリの作成。
- 14. AsyncTaskを使用したコールバック関数の作成
- 15. C++:テンプレートを使用した関数ポインタ
- 16. テンプレート関数を使用したC++テンプレートメタプログラミング
- 17. c input()関数を使用したプログラミング
- 18. 関数ポインタを使用したC++コールバック
- 19. C#関数DLLを作成してCでこの関数を使用する方法は?
- 20. 関数はオブジェクトとオブジェクトを使用して関数を使用します
- 21. C#のコールバックに使用できるC++のDLL関数のラッパーを作成
- 22. コンストラクタコールを使用しないC++オブジェクトの作成
- 23. C++のオブジェクトの関数の結果を使用してオブジェクトの配列をソート
- 24. JavaScriptを使用して作成された匿名関数eval()
- 25. ある関数でオブジェクトを作成し、別の関数でオブジェクトを作成できますか?
- 26. 関数ポインタを使用してCでファームウェアパッチを作成しますか?
- 27. 関数で "オブジェクト"を操作するC
- 28. 関数のプライベート関数の参照を使ってオブジェクトを作成する
- 29. 関数外の関数内で作成されたpandas DataFrameを使用する
- 30. ループを使用して複数のオブジェクトを作成する
重複する質問が10億件あります。 – user2079303