Отключить автоматическую инициализацию переменных в Xcode - PullRequest
1 голос
/ 16 февраля 2012

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

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

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

1 Ответ

3 голосов
/ 16 февраля 2012

Вероятно, это просто случайность.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...