2012-02-16 50 views
1

在我開始調試構建時,我正在使用Xcode的項目在啓動時/編譯時自動將變量初始化爲0。至少一切都看起來像。關閉Xcode中變量的自動初始化

我經常遇到問題,我沒有將變量初始化爲NULL(在我的Mac上正常工作),以及其他人編譯並啓動項目時(特別是在Windows機器上,因爲它是一個多平臺項目),他們得到一個EXC_BAD_ACCESS,因爲== NULL是錯誤的。

我敢肯定,有一種設置可以關閉這種行爲,或者只是巧合,分配的內存總是新鮮的在我的機器上?

+1

如果你正在做交叉編譯代碼,它聽起來像*你*需要更仔細地編寫代碼,以便在初始化之前訪問變量。 – 2012-02-16 12:02:44

+0

當然我必須採取它的情況下!但是當我忘記它時,它在我的機器上工作正常,而其他人發現了這個令人討厭的錯誤,如果可能的話我想阻止它!當然,我必須啓動那些東西! – v01pe 2012-02-16 13:03:58

回答

3

這很可能只是巧合。

關於每個現代多用戶操作系統,當操作系統爲進程提供新內存時,它會擦除​​所有舊內容,從而不會將信息從一個進程泄漏到另一個進程。因此,當您第一次訪問某些內存時,它會像設置爲0一樣運行。

在某些情況下,使用調試版本時可能會發生這種情況,因爲優化通常包括降低堆棧佔用量,因此可以重複使用記憶很早。

+0

嗯,好歹,因爲它似乎從來沒有發生在我的機器上,並始終在其他機器上。但我們可能從未偶然發現過其他情況。雖然謝謝! – v01pe 2012-02-16 13:02:17