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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.68
Dr.ShaX
16 / 16 / 0
Регистрация: 12.11.2008
Сообщений: 39
#1

Многомерный массив в динамической памяти - C++

12.11.2008, 23:08. Просмотров 3434. Ответов 2
Метки нет (Все метки)

Vsem Privet;

Unas problema s mnogamernim massivami.
Naprimer ya obyivlaye massiv ( int myArray[1000][1000]; )

Etot isxodnik komliliruyetsa bez oshibok. No sama proga nerabotayet. Dayot kakoyta oshibki tipa (writeadress: 0x000001)...

Naverna eto problema svyazn s pamitami. Naverna nexvatayet stekovoy pamit.
komentariya
{
Integer (int) peremenoy beryot 4-bay pamit;
myArray uje 1000*1000=1000000;
teper 1000000*4=4000000;
}

Teper vopros. Mojna obyavit mnogomerniy massivi v dinomicheskim pamite???
Esli mojna kak eto. Skojite pojalusta. Ya budu blogodaren!!!
Zoraniya SPOSIBA!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2008, 23:08     Многомерный массив в динамической памяти
Посмотрите здесь:

Массив в динамической памяти - C++
какая разница между int *x=new int(10); и int *x=new int; ?

Массив в динамической памяти - C++
Помогите написать прогу в динамической памяти #include<iostream.h> #include<conio.h> #define N 10 void novmas (int A,int B) ...

одномерный массив в динамической памяти - C++
Ребятки, помогите, пожалуйста, ещё разок) решила задачу на заполнение одномерного массива, подсчет чисел кратных 7 и среднего...

Создать в динамической памяти одномерный массив - C++
Всем добрый день! Помогите с решением задачи. ...

Выделение динамической памяти под массив структур - C++
Добрый день, уважаемые! Пишу функцию выделения памяти под массив структур. Но программа не хочет правильно работать. подскажите пожалуйста,...

Создать в динамической памяти одномерный массив целых чисел - C++
Создать в динамической памяти одномерный массив целых чисел. вычислить сумму четных отрицательных элементов

Классы. Объявить массив динамически и сделать указатель на объект в динамической памяти - C++
Я создал классы: ПЕРСОНА, служащий, роботодатель, инженер. Но мне нужно в программе (после int main() 69 строка) объявить массив...

Выделение динамической памяти - C++
Всем доброго времени суток. Прошу помочь с задачей. Задача решена, просто нужно переделать её с выделением динамической памяти. ...

Переменные в динамической памяти! - C++
подскажите как реализовать такое задание: Разместите в динамической памяти две переменные типа структура, содержащую информацию о...

Выделение динамической памяти - C++
Доброго времени суток! Возник такой вопрос, переделываю программу, где параметры матрицы задавались константами на выделение динамический...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Жестянка
сцуко киборг
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
13.11.2008, 00:00     Многомерный массив в динамической памяти #2
Можно сделать класс, содержащий одномерный динамический массив, но обращение к нему организовать, как к двумерному.
Что-то типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class DinMas
{
publick:
DinMas(int r,int c) //конструктор
        {
        row=r; col=c;
        m=new double[r*c]; //динамическая память
        }
~DinMas(){delete []m;} //деструктор
DinMas(DinMas &DM) // конструктор копии
        {
        row=DM.row;col=DM.col;
        m=new double[row*col];
        for(int i=0;i<col;i++)
               for(int j=0;j<row;j++)
                       m[col*i+j]=DM(i,j);
        }
double & operator()(int r,int c){return m[r*cols+c];} // доступ как к двумерному
 
private:
int row, col;// кол-во строк и столбцов
double *m;
}
Добавлено через 3 минуты 29 секунд
а обращаться к нему так:
C++
1
2
3
4
5
...
int i=10,j=15;
DinMas Massiv1(i,j);
Massiv1(2,5)=10.255;
...
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
13.11.2008, 00:59     Многомерный массив в динамической памяти #3
C++
1
2
int ** a = new int *[N];
for(int i=0;i<N;i++) a[i]= new int[M];
Первый способ. Сразу можно обращаться a[i][j];
Или второй способ от Жестянки.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru