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

Нехватка памяти - C++

Восстановить пароль Регистрация
 
TheMozddra
3 / 3 / 0
Регистрация: 28.10.2013
Сообщений: 36
15.11.2013, 22:47     Нехватка памяти #1
Здравствуйте)
пытаюсь выделить память под массив из 15345000 элементов, при запуске выскакивает окно "прекращение работы". До этого все работает нормально. Что можно сделать? переменные типа int, но весь массив забит ноликами и единичками
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
15.11.2013, 22:51     Нехватка памяти #2
Цитата Сообщение от TheMozddra Посмотреть сообщение
Здравствуйте
Прювет
Цитата Сообщение от TheMozddra Посмотреть сообщение
пытаюсь выделить память
где? Не вижу кода
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 928
Завершенные тесты: 1
15.11.2013, 22:52     Нехватка памяти #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
    const int size = 15345000;
    int *array = new int[size]();
    
    for (int i = 0; i < size; ++i)
        array[i] = i % 2;
    
    int last = size - 1;
    for (int i = 0; i < last; ++i)
        std::cout << array[i] << " ";
    std::cout << array[last] << std::endl;
 
    delete[] array;
    return 0;
}
programina
15.11.2013, 22:59
  #4

Не по теме:

Цитата Сообщение от TheMozddra Посмотреть сообщение
Нехватка памяти
Цитата Сообщение от TheMozddra Посмотреть сообщение
Что можно сделать?
Кушать грецкие орехи.

Байт
 Аватар для Байт
13973 / 8804 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
15.11.2013, 23:42     Нехватка памяти #5
Цитата Сообщение от TheMozddra Посмотреть сообщение
Что можно сделать
Можно вместо int использовать char. Уже в 4 раза памяти меньше. Можно использовать битовые маски. Еще на 8 раздели. Все равно не хватает? - пиши в файл.
Yandex
Объявления
15.11.2013, 23:42     Нехватка памяти
Ответ Создать тему
Опции темы

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