Форум программистов, компьютерный форум 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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 14:39     Динамический массив как глобальная переменная #2
что вы подрузумиваете под

Цитата Сообщение от Zeka13 Посмотреть сообщение
глобальной переменной в классе, её размерность x,y тоже глобальные переменные этого класса
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 14:44  [ТС]     Динамический массив как глобальная переменная #3
matrix должна быть глобальной матрицей класса MyClass
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 14:50     Динамический массив как глобальная переменная #4
Zeka13, public + static?
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 14:51     Динамический массив как глобальная переменная #5
Цитата Сообщение от Zeka13 Посмотреть сообщение
matrix должна быть глобальной матрицей класса MyClass
может вы это имеете ввиду!)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
 
using namespace std;
 
class myclass
{
    int x, y;
public:
    myclass();
    myclass(int i, int j)
    {
        i = x; j = y;
        int **matr = new int *[x]; 
        for (int k = 0; i < k; ++k) 
            matr[k] = new int [y];
    } 
 
 
};
 
int main()
{ 
    int x, y;
    cout << "Задайте размеры матрицы - ";
    cin >> x >> y;
    myclass ob(x,y);
 
    return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 15:10     Динамический массив как глобальная переменная #6
Infinity3000, не думаю, что ТС просил утечку памяти.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
class Foo
{
public:
    static int a;
};
 
int Foo::a(0);
 
int main()
{
    Foo f1, f2;
    f1.a = 3;
    std::cout << f2.a << std::endl;
}
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 15:12     Динамический массив как глобальная переменная #7
Цитата Сообщение от soon Посмотреть сообщение
Infinity3000, не думаю, что ТС просил утечку памяти.
ну я как бы догадывался что ТС знает о...

C++
1
2
3
for (i = 0; i < n; i++)
        delete [] matr[i];
    delete [] matr;
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 15:13     Динамический массив как глобальная переменная #8
Infinity3000, дело не в этом. Какой смысл в конструторе выделять память, и в нем же высвобождать? Не в общем, а конкретно в вашем примере.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 15:17     Динамический массив как глобальная переменная #9
Цитата Сообщение от soon Посмотреть сообщение
конструторе выделять память, и в нем же высвобождать?
а кто говорил что память будет освобождаться в конструкторе!?? для это можно использовать деструктор к примеру ну или отдельную функцию!

и ТС как бы в теме указал

Цитата Сообщение от Zeka13 Посмотреть сообщение
динамический массив
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 15:21     Динамический массив как глобальная переменная #10
Infinity3000, ничего, что переменная matr существует только в конструкторе? Двумя сообщениями выше я тонко намекал на это.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
22.03.2012, 15:27     Динамический массив как глобальная переменная #11
Цитата Сообщение от Zeka13 Посмотреть сообщение
Хочу объявить матрицу(matrix допустим) глобальной переменной в классе
Цитата Сообщение от Zeka13 Посмотреть сообщение
matrix должна быть глобальной матрицей класса MyClass
давайте уж поаккуратнее скажите, что нужно. первое - несуразица, в то время, как второе - вполне возможно(если я правильно понимаю вас)
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 15:42     Динамический массив как глобальная переменная #12
Я предложил как пример, как понял просьбу ТС!

Да и в Вашем примере не вижу динамического массива



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
 
using namespace std;
 
int **mass = 0; 
 
class myclass
{
    int x, y;
    
public:
    myclass(){};
    ~myclass(){};
 
    int **Matrix(int n, int m) //описания функции динамического выделения памяти под матрицу
    {
        int **matr = new int *[n]; 
            for (int i = 0; i < n; ++i) 
                matr[i] = new int [m];     
        return matr; //возвращаем массив
    }
    
    void release(int n)
    {
        // высвобождение динамической памяти
        for (int i = 0; i < n; i++)
            delete [] mass[i];
        delete [] mass;
    }
};
 
 
int main()
{ 
    int x, y;
    cout << "Задайте размеры матрицы - ";
    cin >> x >> y;
    
    myclass ob;
 
    mass = ob.Matrix(x, y); //вызываем функцию которая выделяет память под динамический массив
    
    ob.release(x);// высвобождение динамической памяти
 
    return 0;
}
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 15:49  [ТС]     Динамический массив как глобальная переменная #13
я немного запутался, но Infinity3000 кажется точно меня понял, скоро опробую!

Добавлено через 33 секунды
только вот что такое n и m?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 15:49     Динамический массив как глобальная переменная #14
Infinity3000, я лишь показал возможное использование "глобальной переменной в классе". Все остальное на совести ТС.
Поменьше негатива. Я не ставил себе цель оскорбить вас, я лишь указал вам на ошибки. Выпейте чаю, съешьте булочек, успокойтесь.
За сим флуд прекращаю.

upd.
Вы меня не капли не оскорбили! спасибо за указанные не точности! конструктивную критику приветствую!
Меня смутили ваши восклицательные знаки после каждого предложения.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 15:52     Динамический массив как глобальная переменная #15
Цитата Сообщение от Zeka13 Посмотреть сообщение
только вот что такое n и m?
размер матрицы! мажешь заменить на x, y

Добавлено через 1 минуту
Цитата Сообщение от soon Посмотреть сообщение
Infinity3000, я лишь показал возможное использование "глобальной переменной в классе". Все остальное на совести ТС.
Поменьше негатива. Я не ставил себе цель оскорбить вас, я лишь указал вам на ошибки. Выпейте чаю, съешьте булочек, успокойтесь.
За сим флуд прекращаю.
Вы меня не капли не оскорбили! спасибо за указанные не точности! конструктивную критику приветствую!
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 17:22  [ТС]     Динамический массив как глобальная переменная #16
../plot3.1/maincount.cpp:25:27: ошибка: некорректные типы «<unresolved overloaded function type>[int]» для индекса массива

И так везде, где работаю с массивом, вот полный код
нужный мне для работы массив - a(бывший matrix)
values.h
http://paste.ubuntu.com/895063/
values.cpp
http://paste.ubuntu.com/895065/
maincount.cpp
http://paste.ubuntu.com/895072/
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 17:56     Динамический массив как глобальная переменная #17
Я бы посоветовал вам выложить весь проект и написать само задание.
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 18:00  [ТС]     Динамический массив как глобальная переменная #18
сейчас смастерю минипроект
Zeka13
 Аватар для Zeka13
-33 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
22.03.2012, 18:09  [ТС]     Динамический массив как глобальная переменная #19
вот проект Qt, там понятно, что я хочу
Вложения
Тип файла: zip miniplot.zip (4.4 Кб, 9 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2012, 18:24     Динамический массив как глобальная переменная
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.03.2012, 18:24     Динамический массив как глобальная переменная #20
Zeka13, a - функция, а вы как с массивом работаете. Задание скажите, так проще будет. Глобальный указатель на указатель, память под который выделяется в классе, x и y не инициализированы... Ужас.
Yandex
Объявления
22.03.2012, 18:24     Динамический массив как глобальная переменная
Ответ Создать тему
Опции темы

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