Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
14 / 9 / 0
Регистрация: 12.07.2012
Сообщений: 82

Большой массив

03.03.2013, 11:38. Показов 1108. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я делаю генерацию ландшафта, и появилась проблема с хранением карты высот.
Я разбил весь мир на квадратные части,
и когда для каждой части был отдельный массив float data[17][17](а частей всего [64][64]), тогда работало нормально, но сейчас я захотел хранить карту высот в одном очень большом массиве(float data[1088][1088]),
и теперь при заполнении массива выводится ошибка
"Stack overflow."

Я так понимаю - слишком много памяти требуется.
Есть ли какой-нибудь не целочисленный тип данных, которому требуется меньше памяти(к примеру от -1024,000 до 1024,000)?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2013, 11:38
Ответы с готовыми решениями:

Отрисовывание большой структуры
Доброе время суток, форумчане, мне нужен ваш совет. Я программирую в Visual Studio на C++ мне нужно отрисовать маршрут к задаче...

Большой двумерный массив
Нужен массив 999999996 на 999999997, но компилятор ругается! Заранее спасибо!

Большой константный массив
Нужно хранить в классе большой константный массив (вектор). Модификатор const не обязателен (хотя было бы неплохо), имеется ввиду что...

5
38 / 38 / 5
Регистрация: 03.06.2010
Сообщений: 120
03.03.2013, 12:35
C++
1
2
3
4
5
float** data = new float*[1088];
  for (int i = 0; i < 1088; i++)
  {
    data[i] = new float[1088];
  }
Так не будет переполнения стека. Только потом надо освободить память.
2
2742 / 1668 / 269
Регистрация: 19.02.2010
Сообщений: 4,413
09.03.2013, 21:46
Nomadd, Так в большом массиве храните КОДЫ значений (коды могут быть байтовыми или двухбайтовыми), а в отдельном массиве - истинные плавучие значения для каждого кода (индекса). Может быть, и получится сэкономить память.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
09.03.2013, 22:01
Цитата Сообщение от lezh1k Посмотреть сообщение
Так не будет переполнения стека. Только потом надо освободить память.
Может дело в том, что где то в функцию передаётся? То есть формальный параметр объявлен как массив? Тогда, если объявить вместо этого и передавать указатель (float **landshArr) и пару целых (измерения), то и со статическим массивом должно работать.
В крайнем случае, можно ещё объявить глобально и не передавать ничего.
0
38 / 38 / 5
Регистрация: 03.06.2010
Сообщений: 120
10.03.2013, 09:44
Да нет... Тут просто попытка создать такой большой массив на стеке... Возможно где-то в настройках проекта можно сделать стек побольше, но создавать на куче надежней.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
10.03.2013, 11:44
Цитата Сообщение от Nomadd Посмотреть сообщение
float data[1088][1088]),
подсчитай количество байт
1088*1088*4(размер флоата)=4734976 байт= 4,5 мБайта
а стек размером всего в один мегабайт
вот и получаешь
Цитата Сообщение от Nomadd Посмотреть сообщение
"Stack overflow."
так что выделять нужно в куче( динамическое выделение) как тебе и сказал
lezh1k,

Добавлено через 1 минуту
Цитата Сообщение от lezh1k Посмотреть сообщение
Возможно где-то в настройках проекта можно сделать стек побольше,
боюсь что дело не в проекте а в особенностях ОС

Добавлено через 11 минут
Цитата Сообщение от Nomadd Посмотреть сообщение
float data[1088][1088]
можешь попробовать объявить так
C++
1
static float data[1088][1088];
тогда массив будет определен в глобальной области и стек не затронет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2013, 11:44
Помогаю со студенческими работами здесь

Большой динамический массив
Столкнулся с проблемой, имеется большой массив создаваемый динамически (~1000000 ячеек) и примерно на 350000 на одной и тойже ячейке...

Большой массив объектов
Здравствуйте. Пишу простую игру, для этого нужно создать поле 46*59 из ячеек класса myCell. Однако чем больше размер поля, тем дольше оно...

очень большой массив
Здравстуйте! Необходимо решить физическую задачку явной схемой, однако столкнулся с проблемой : нужен очень большой трехмерный массив и...

DLL + Большой текстовый массив
Добрый день! Пишу dll, планируется использовать около 80000 строк текстовых данных (справочник). Не хочу таскать txt-файл с dll, можно...

Большой динамический массив. EOF.
Задаём элементы массива пока не будет введён EOF. (Ctrl+Z или Ctrl+C). Память ограничена. Нужно создать массив динамически и если памяти...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru