私のfreeglutプロジェクトでは、たくさんのメモリを割り当てましたが、ユーザーがfreeglut(またはglut)ウィンドウを閉じたときにそれを解放する方法がありません。何かアイデアはありますか?
質問する
4044 次
2 に答える
8
FreeGLUTは、これに対していくつかのソリューションを提供します。
を呼び出して関数を返すことができ
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION)
、呼び出し後に必要なすべてのメモリを解放できます。glutLeaveMainLoop()
glutMainLoop()
glutMainLoop()
呼び出す代わりに、次の
glutMainLoop()
ように独自のイベントループを作成できます。bool running = true; while (running) { glutMainLoopEvent(); }And whenever you want to exit application - just set running variable to false, and free the allocated memory after while loop.
または、何もできません。最新のOSは、プロセスの終了時に、割り当てられたすべてのメモリの割り当てを正しく解除します。もちろん、ログファイルへの書き込み、ネットワークパケットの送信など、終了時に特別なことを行う必要がある場合は、手動で行う必要があります。
于 2012-06-20T06:52:53.673 に答える
2
メインループの前にexit関数をatexit(onexit)に登録します。
于 2013-11-10T23:00:59.073 に答える