2012-02-16 10 views
1

私が作業しているプロジェクトでは、起動時にコンパイル時に自動的に変数を0に初期化します。少なくともすべてはそれのように見えます。Xcodeの変数の自動初期化をオフにする

私はしばしば変数をNULLに初期化していない - Macでうまく動作する - そして他の誰かがプロジェクトをコンパイルして起動すると(特にWindowsマシンではマルチプラットフォームであるため)プロジェクト)では、== NULLがfalseであるため、EXC_BAD_ACCESSが返されます。

私はこの動作を無効にする設定が存在するか、または割り当てられたメモリが常に自分のマシン上で新鮮であることは偶然であることは間違いありませんか?

+1

クロスコンパイルコードを実行している場合は、変数が初期化される前に変数にアクセスするコードを書くことに注意する必要があります。 –

+0

もちろん私はそれを取る必要があります!しかし、私がそれを忘れると、マシン上で正常に動作しています。他の人はバグを見つけます。これは面倒です。もちろん私はそのものを初期化する必要があります! – v01pe

答えて

3

おそらく偶然である可能性があります。

最新のマルチユーザOSのほぼすべてでは、OSがプロセスに新しいメモリを与えると、古いプロセスのすべての情報が消去され、あるプロセスから別のプロセスに情報が漏れないようになります。したがって、最初にいくつかのメモリにアクセスすると、0に設定されているかのように解釈されます。

これは、デバッグビルドを使用すると、スタックフットプリントを下げることを含むことが多いため、メモリははるかに早い。

+0

私のマシンでは決して起こっていないように見えます。しかし、私たちはたぶん他のケースを偶然見つけたことはありません。しかし、ありがとう! – v01pe

関連する問題