2012-02-16 2 views
1

В проекте, в котором я работаю, Xcode автоматически инициализирует переменные до 0 при запуске/во время компиляции, когда я запускаю сборку отладки. По крайней мере, все выглядит так.Отключить автоматическую инициализацию переменных в Xcode

Я часто сталкиваюсь с проблемой, что я не инициализировал переменную NULL, которая отлично работает на моем Mac, и когда кто-то компилирует и запускает проект (особенно на машинах Windows, поскольку это мультиплатформенный проект), они получают EXC_BAD_ACCESS, потому что == NULL является ложным.

Я уверен, что существует настройка, чтобы отключить это поведение или просто совпадение, что выделенная память всегда свежа на моей машине?

+1

Если вы делаете кросс-компиляционный код, это звучит как * вы * должны быть более осторожны в написании кода, который обращается к переменным, прежде чем они будут инициализированы. –

+0

Конечно, я должен принять случай! Но когда я забываю об этом, он отлично работает на моей машине, а другие находят ошибку, которая раздражает, и я хочу предотвратить это, если это возможно! Конечно, я должен начать это! – v01pe

ответ

3

Скорее всего, это совпадение.

О каждой современной многопользовательской ОС, когда ОС предоставляет новую память процессу, она удаляет все старое содержимое, чтобы не было утечки информации из одного процесса в другой. Поэтому, когда вы впервые обращаетесь к некоторой памяти, она устанавливается, как если бы она была установлена ​​на 0.

Это произойдет в определенных ситуациях, более вероятно, при использовании отладочных сборников, поскольку оптимизация часто включает в себя уменьшение размера стека, таким образом, память намного раньше.

+0

Хм, ОК, как и кажется, никогда не происходит на моей машине, и всегда на других машинах. Но мы, вероятно, просто не наткнулись на другой случай. Спасибо хоть! – v01pe

Смежные вопросы