Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/58: Рейтинг темы: голосов - 58, средняя оценка - 4.78
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
1

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

22.03.2012, 14:35. Показов 11384. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, даже с google никак не смогу разобраться со следующей задачей:
Хочу объявить матрицу(matrix допустим) глобальной переменной в классе, её размерность x,y тоже глобальные переменные этого класса, которые задаются через слот(функцию) этого класса, тобишь при компиляции размерность массива matrix ещё не известна.

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

Заранее огромное спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2012, 14:35
Ответы с готовыми решениями:

Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз
Исходники: /* main.cpp */ #include "hider.h" int main(void) { return 0; } /* foo.cpp */

Глобальная переменная(не пойму как точно сделать)
Привет.. Делаю менюшку... Ну как в .... Блокноте "Файл, Правка, Справка". Меню выпадающее, тоесть...

Глобальная переменная
Никогда с таким не сталкивался... В общем: Надо обьявить глобальный масив в одной функции, но...

Глобальная переменная
Есть двумерный символьный массив ClusterBuf объявленный глобально. В него,в ходе выполнения...

35
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 18:29  [ТС] 21
Author24 — интернет-сервис помощи студентам
"x и y не инициализированы" не правда

задание:
нужно, чтобы этот проект скомпилировался, причём все три функции per() srav() и maincount() отработали с массивом a, как в проекте
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 18:57 22
Еще раз. a - не массив. Это функция.

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

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

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

Глобальная переменная
#include "stdafx.h" #include "locale" #include "iostream" #include "conio.h" using...

Глобальная переменная
Надо сделать глобальную переменную которая будет видна во всех файлах .cpp Непонятно где ее...

Глобальная переменная из другой dll
Имеется сторонняя dll без исходников. Мне нужно в своей программе получить значение глобальной...

Глобальная переменная локальной видимости
Я где-то читал, что если объявить переменную вне функций, а затем определить ее в функции, она...

Не определяется глобальная переменная внутри функции
Доброго времени суток! Передо мной стоит задача: Задано множество точек М в трехмерном...

Глобальная переменная не читается в новом потоке
подскажите пожалуйста, у меня есть помимо главного еще 2 потока и есть глобально объявленный...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru