Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать очень большой массив? 
V
    Опции темы
andrew_121
Дата 21.3.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(mes @  21.3.2009,  17:32 Найти цитируемый пост)
так человеко требуется всего шесть с половиной мегабайт, а Вы его нагружаете много много гигабайтной ОЗУ.

Просто выглядит страшно smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Dem_max
Дата 21.3.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



new и точка.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Dmi3ev
Дата 21.3.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

так человеко требуется всего шесть с половиной мегабайт, а Вы его нагружаете много много гигабайтной ОЗУ.

и того меньше... 

GoldFinch, откуда у вас такие сведения??? Поделитесь...


--------------------

PM MAIL   Вверх
Wolf1994
Дата 22.3.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Цитата(zim22 @  21.3.2009,  15:50 Найти цитируемый пост)
int *p = new int [400000000];

Не удалось создать массив для char по аналогии:
Код

char *p = new char [100000] [64];

привело к:
Цитата

1000 c:\wc\wc.cpp cannot convert `char (*)[64]' to `char*' in initialization 

Но вариант с глобальным массивом сработал. Спасибо за помощь.
PM MAIL WWW   Вверх
zim22
Дата 22.3.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Wolf1994 @  22.3.2009,  15:43 Найти цитируемый пост)
Не удалось создать массив для char по аналогии:

двумерный динамический массив создаётся несколько по другому. например массив 10 на 10 так:
Код
char **p = new char *[10]();
    for (int i = 0; i != 10; ++i)
        *p = new char[10]();




--------------------
PM MAIL   Вверх
Dmi3ev
Дата 22.3.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



zim22, я бы написал вот так
Код

int n=100000;//количество строк
int m=64;//количество столбцов
int **p; 
p= new int *[m];
    for (int i = 0; i <m; i++)
        p[i] = new int[n];

так правильнее!

Добавлено через 2 минуты и 3 секунды
твой вариант не скомпилируется скорее всего...

Это сообщение отредактировал(а) Dmi3ev - 22.3.2009, 16:08


--------------------

PM MAIL   Вверх
zim22
Дата 22.3.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Dmi3ev @  22.3.2009,  16:08 Найти цитируемый пост)
твой вариант не скомпилируется скорее всего...

ещё как компилится!

В моём коде необходимо инкрементить указатель. чтобы он заработал гениально правильно! smile
Код

*p++ = new char[10]();


Это сообщение отредактировал(а) zim22 - 22.3.2009, 16:15


--------------------
PM MAIL   Вверх
Dmi3ev
Дата 22.3.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

В моём коде необходимо инкрементить указатель.

вот это уже ближе к правде, все равно считаю мой вариант классическим и более правильным...


--------------------

PM MAIL   Вверх
zim22
Дата 22.3.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Dmi3ev, мне в вашем коде всё нравится, кроме того, что вы в двух строчках делаете то, что я бы сделал в одной smile
Код

int **p; 
p= new int *[m];



--------------------
PM MAIL   Вверх
Dmi3ev
Дата 22.3.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

Dmi3ev, мне в вашем коде всё нравится, кроме того, что вы в двух строчках делаете то, что я бы сделал в одной 

это уже дело другое...
я про запись говорил...
а так я написал для того, чтобы товарищ понял, что необязательно объявлять и тут же выделять память, а можно будет объявить:
Код

int i, g, **p, *m;

а потом уже выделять...


--------------------

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.