パスワードは平文で、passWd
という文字列の変数に格納されています。 この変数を破棄すると、この変数はどのように解放されますか(たとえば、del passWd
またはpassWd= 'new random data'
)?Python - 文字列変数の解放/置き換え、どのように処理されるのですか?
文字列は、元々存在していたメモリ領域に上書きできることを意味するバイト配列として格納されているか、または変更できないメモリ領域に固定されたセットです。新しいメモリ領域が作成され、古い領域は破棄されますが、nullで上書きされませんか? Pythonはメモリ領域の安全性を実装し、それについての詳細を知りたいのですがどのように私は興味:)
私はdel
を使用して、これまでに収集したものから、
(または主な理由は、疑問だ
__del__
)は、インタプリタがその変数のメモリ領域を自動的に解放しないため、問題を引き起こす可能性があります。また、デルは値を削除するためには間に合いません。しかし、それは私が集めたもので、黒でも白でもないからです。
私が主張する主な理由は、文字列を取得するハンドオーバアプリケーションを作成しようとしていることです。 Oは、別のサブシステム(例えば、ラズベリーパイのブートローダ)に渡し、インターフェイスはPythonで書かれています(いくつかの人の耳には奇妙に聞こえるはずです)。そして、私がデータが侵害されているのではないかと心配しています/ O計算ではなく、2つのサブシステムハンドオーバ間でメモリダンプが発生している可能性があります。システムが起動してから20分後にシステムがフリーズしているとしたら、できるだけ早く変数を削除していますが、何とかしてもメモリに残っています。
(Ps。
を参照してください。 –
私はそれをすべて読んできました。私がCと似ていないのであれば、malloc経由でメモリ領域を割り当てます。それといくつかのものとそれを解放..'free()'が呼ばれた後に、そのメモリ領域に残っているものを実際に書き直すことはありませんか? – Torxed
これはただ解放されました。メモリ*は他の何かによって使用されるかもしれませんが、それが可能なguararteeはありません。 –