Delphi 7 IDE を使用しています。Delphi コンパイラは、この次のリンクで C++ コンパイラが行っているように、コードを最適化しますか?
http://msdn.microsoft.com/en-us/library/aa366877(VS.85).aspx
WCHAR szPassword[MAX_PATH];
// Retrieve the password
if (GetPasswordFromUser(szPassword, MAX_PATH))
UsePassword(szPassword);
// Clear the password from memory
SecureZeroMemory(szPassword, sizeof(szPassword));
ZeroMemory
この例で の代わりに が呼び出された場合SecureZeroMemory
、コンパイラは呼び出しを最適化できます。これは、szPassword
バッファーがスコープ外になる前に読み取られないためです。パスワードはアプリケーション スタックに残り、クラッシュ ダンプに取り込まれたり、悪意のあるアプリケーションによって調べられたりする可能性があります。