Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > адрес внешней переменной в разных модулях


Автор: ubique 31.8.2011, 16:14
Добрый день.

Программа состоит из двух файлов - a.c и b.c. Функция main() определена в a.c.
При этом, в обоих файлах есть declaration - extern char **environ.
Почему, если сделать printf("environ = %#x", environ) в a.c и b.c, то у них показываются различные адреса?
environ не изменяется ни в одном из файлов. Единственное - используется getopt(3), но getopt(3) если и влияет, то только на argv?

P.S. Делаю аналог setproctitle

Автор: Cheloveck 31.8.2011, 16:34
код в студию

Автор: ubique 31.8.2011, 16:34
Пытаюсь воспроизвести проблему в минимальном виде, не получается. Видимо что-то все таки изменяет переменную и похоже это не getopt. Буду разбираться дальше.

Добавлено через 6 минут и 14 секунд
Разобрался, ошибка как и ожидалось была в коде.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)