|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.07.2008, 10:27 | #1 | ||
Пользователь
Регистрация: 21.01.2008
Сообщений: 10
|
область видимости переменных. С++
имеется 2 функции - main() и func(). находятся они в разных .cpp . необходима возможность манипулирования переменной в main() при условии, что объявится она в func(). если конкретней,то объявляется динамически массив из х элементов и там же и заполняется. х находится очень долго, заполняется тоже, посему всё решил запихнуть в другой файл.
функции получалось вызывать при помощи *.h, в котором писалось extern int func(); переменными же так не получается. линкер выдаёт Цитата:
Цитата:
|
||
07.07.2008, 10:59 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Что-то я не понял, Вы хотите из одной функции работать с локальной переменной другой?
|
07.07.2008, 11:17 | #3 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 10
|
я хочу чтобы переменная была глобальной и была доступна в любой другой функции
|
07.07.2008, 11:45 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Тогда объявите её в одном C-файле, а в других, которые её используют, объявите её же с extern.
|
07.07.2008, 13:20 | #5 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 10
|
если я правильно понял:
Код:
Код:
2.o(.text+0x5):2.cpp: undefined reference to `k' collect2: ld returned 1 exit status |
07.07.2008, 13:24 | #6 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Вы же сами сказали, что хотите
Цитата:
Код:
|
|
07.07.2008, 14:06 | #7 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 10
|
хм... в первоначальной задумке вместо к должен быть массив, который должен состоять из определенного кол-ва элементов. это кол-во элементов задается в функции. если объявление массива вынести из функции, то объявляться он будет до того, как определится кол-во элементов в нем,чего быть не может.
|
07.07.2008, 14:21 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Prestigio, Ваши первоначальные задумки никому, кроме Вас не известны. Поэтому или показывайте проблемный код целиком, или подробнее излагайте проблему. К чему тогда был тот отрывок, который вы привели? Чтобы обратиться, тем паче на этапе сборки, к переменной, нужно знать её адрес. Получить адрес локальной переменной весьма проблематично - она существует только во время работы "своей" функции и по неопределённому адресу в стэке. Так что либо объявляйте глобальный указатель на массив, либо передавайте в вызываемую функцию указатель на локальную переменную в вызывающей, либо, коли в заголовке у Вас C++, пользуйтесь глобальными динамическими массивами C++, либо..., либо... - чем точнее формулировка проблемы, тем точнее ответ.
|
07.07.2008, 15:39 | #9 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 10
|
более подробно:
пишу программу, работающую с трехмерной сценой. пока что готов загрузчик моделей, только толку от него не много, поскольку к объектам можно обращаться только в read_mesh(). Код:
Код:
Код:
|
07.07.2008, 15:53 | #10 | |
Пользователь
Регистрация: 24.05.2008
Сообщений: 25
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать чтобы новые строки всегда были в области видимости? | neugadal | Microsoft Office Excel | 9 | 06.09.2008 12:23 |
проблемы с областью видимости переменной | titan-prog | Помощь студентам | 2 | 11.07.2008 18:58 |
Область применения переменных | ixs | Общие вопросы Delphi | 2 | 05.06.2008 18:00 |
ошибся с областью видимости ? | Иванчо | Общие вопросы Delphi | 8 | 25.10.2007 16:35 |
область видимости ? | artem779 | Общие вопросы Delphi | 3 | 14.09.2007 09:34 |