私がアプリケーションを終了すると、すべてが解放されますか?または、ポインタ配列(malloc)がある場合、アプリケーションを終了する前にポインタを解放する必要がありますか?アプリケーションを終了するとき、ポインタを解放する必要がありますか、それとも自動的に行われますか?
おかげ
私がアプリケーションを終了すると、すべてが解放されますか?または、ポインタ配列(malloc)がある場合、アプリケーションを終了する前にポインタを解放する必要がありますか?アプリケーションを終了するとき、ポインタを解放する必要がありますか、それとも自動的に行われますか?
おかげ
これは、Cの仕様で定義されていない(したがって、正式にObjective-Cで定義されていない)が、プロセスが終了すると、iOSと他のすべての近代的なオペレーティングシステム上で、そのメモリがシステムに返されています。したがって、C++デストラクタとObjective-C -dealloc
の実装は実行されませんが、このようなポインタは適切に解放されます。
このスタックオーバーフローを確認するpost依然として存在するすべてのオブジェクトは、システムに返され、オペレーティングシステムによって空きメモリとしてリストされます。
その他のすべての回答に記載されているとおり、答えは「いいえ」です。しかし、多くの場合、アプリケーションが突然クラッシュしたため、はのメモリを解放できないことに注意してください。 OS自体にメモリリークがない場合、iOSは割り当て方法に関係なく、アプリケーションが使用するメモリをクリーンアップします。
ソートポインタは解放されません。アプリケーションの仮想アドレス空間全体(および関係で使用される物理リソース)は単にシステムに返されます。ポインタレベルでは何も起こりません。 – bbum
ええ、それは私がスキップしていた微妙ですが、はい、あなたは正しいです。 –