4

プログラム終了後も持続する変数が欲しいのですが。つまり、アプリケーションがmain関数を終了した後も、変数をメモリに残しておく必要があります。したがって、アプリケーションを再度起動すると、メモリからその変数に直接アクセスできます。これも可能ですか?動的割り当て、たとえばarray=new int[size]、トリックを実行しますか?

4

3 に答える 3

3

いいえ、すべてのメモリはプロセスの終了時にOSによって再利用されます。必要なものをファイルに保存する必要があります。

于 2012-07-27T13:45:18.623 に答える
3

不可能です。次回の起動時にデータにアクセスするには、データをファイルまたはシステム環境設定に保存する必要があります

于 2012-07-27T13:45:58.220 に答える
2

免責事項: ファイルに値を保存するか、QSettingsなどのフレームワーク機能を使用することは、次のアプローチよりも優先されます。

変数をメモリに残したい場合や、再起動時に値が失われるリスクがある場合は、オペレーティングシステムに共有メモリを要求してください。

LinuxやWindowsなどのPOSIX準拠のプラットフォームを使用している場合は、POSIX関数を使用してください。マニュアルを引用するには:

POSIX共有メモリオブジェクトにはカーネルの永続性があります。共有メモリオブジェクトは、システムがシャットダウンされるまで、またはすべてのプロセスがオブジェクトのマッピングを解除して、で削除されるまで存在しますshm_unlink

これにより、一種のメモリリークが発生することに注意してください。アプリケーションの終了後も、変数はメモリを消費します。

于 2012-07-27T14:20:16.773 に答える