Форум программистов, компьютерный форум CyberForum.ru

Динамический массив как глобальная переменная - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.80
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 14:35     Динамический массив как глобальная переменная #1
Доброго времени суток, даже с google никак не смогу разобраться со следующей задачей:
Хочу объявить матрицу(matrix допустим) глобальной переменной в классе, её размерность x,y тоже глобальные переменные этого класса, которые задаются через слот(функцию) этого класса, тобишь при компиляции размерность массива matrix ещё не известна.

Как можно объявить matrix глобальным?

Заранее огромное спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 14:35     Динамический массив как глобальная переменная
Посмотрите здесь:

C++ Глобальная переменная
C++ Глобальная переменная
Глобальная переменная C++
C++ Глобальная переменная(не пойму как точно сделать)
глобальная переменная не читается в новом потоке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 18:29  [ТС]     Динамический массив как глобальная переменная #21
"x и y не инициализированы" не правда

задание:
нужно, чтобы этот проект скомпилировался, причём все три функции per() srav() и maincount() отработали с массивом a, как в проекте
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 18:57     Динамический массив как глобальная переменная #22
Еще раз. a - не массив. Это функция.

Насчет не инициализированы - погорячился, не увидел ui -> XSpinBox -> value().

Глобальная переменная - чушь. Засуньте ее в класс, сделайте статичной, что угодно, но не оставляйте просто так. За счет того, что у вас values.h включается раза 2 минимум происходит множественное объявление **mass.
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 19:19  [ТС]     Динамический массив как глобальная переменная #23
пардон за "не правда", я имел ввиду "неправда"

мне такой код сюда скинули, я же говорю, что не понимаю как реализовать задачу
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 20:17     Динамический массив как глобальная переменная #24
Zeka13, тут не подойдут ни глобальные, ни статические в классе переменные. У меня получилось сократить максимум до одного множественного определения, путем уделения ненужных файлов + запихивания все в два хедера.
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 20:45  [ТС]     Динамический массив как глобальная переменная #25
вот компилирующийся проект
в Values.h исчерпывающий комментарий
Вложения
Тип файла: zip miniplotNEW.zip (4.3 Кб, 6 просмотров)
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 21:23     Динамический массив как глобальная переменная #26
Zeka13, дак вы же хотели глобальный. Если не нужен глобальный, то делаете указатель на указатель, затем, если в конструторе известны x и y(мельком глянул) выделяете в нем память, в деструкторе освобождаете. Если не известны, то по аналогии с примером Infinity3000
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 21:41  [ТС]     Динамический массив как глобальная переменная #27
вы же видели, что у меня не получилось по аналогии
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 22:16     Динамический массив как глобальная переменная #28
Так хотели?
Вложения
Тип файла: zip miniplotNEW.zip (7.1 Кб, 11 просмотров)
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
23.03.2012, 09:46  [ТС]     Динамический массив как глобальная переменная #29
спасибо огромное, буду разбираться!
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
24.03.2012, 13:54  [ТС]     Динамический массив как глобальная переменная #30
немного поправил, посмотрите пожалуйста
было
http://paste.ubuntu.com/897593/
стало
http://paste.ubuntu.com/897594/
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.03.2012, 14:06     Динамический массив как глобальная переменная #31
Zeka13, во втором варианте, если не будет вызываться setValues(), то будет освобождение памяти по не валидному указателю. Имхо, не есть хорошо, но если гарантируется, что setValues() вызовется, то не страшно. А так вроде все то-же самое. А какой вопрос был?
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
24.03.2012, 14:12  [ТС]     Динамический массив как глобальная переменная #32
вы исчерпывающе ответили на него, ещё раз огромное спасибо
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.03.2012, 14:12     Динамический массив как глобальная переменная #33
Ах да, если будет повторно вызвана функция setValues(), то будет снова выделена память. Я в ui не вникал, так что если где-то есть вероятность повторного вызова setValues(), то будут неприятности.
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
24.03.2012, 14:22  [ТС]     Динамический массив как глобальная переменная #34
оу, об этом я не подумал, спасибо, перестрахуюсь тогда!
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
13.05.2012, 21:08  [ТС]     Динамический массив как глобальная переменная #35
а почему delete[] a; только в деструкторе?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2012, 11:15     Динамический массив как глобальная переменная
Еще ссылки по теме:

глобальная переменная из другой dll C++
C++ Глобальная переменная
C++ Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
14.05.2012, 11:15  [ТС]     Динамический массив как глобальная переменная #36
а ещё программа вылетает, если завести второй такой массив!
Вложения
Тип файла: zip miniproj.zip (4.5 Кб, 4 просмотров)
Yandex
Объявления
14.05.2012, 11:15     Динамический массив как глобальная переменная
Ответ Создать тему
Опции темы

Текущее время: 16:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru