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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Ivan Fantom
 Аватар для Ivan Fantom
5 / 5 / 1
Регистрация: 12.10.2011
Сообщений: 75
#1

Выделите-ка под массив память размером 32 ГБ - C++

11.07.2013, 22:45. Просмотров 2362. Ответов 40
Метки нет (Все метки)

Получил ряд вопросов от одной фирмы. Надо ответить чтобы удостоить себя собесодованием) Вот один из них.

Словесно представьте вашу последовательность действий при написании программного кода заданий описанных ниже с учетом всех возможных на Ваш взгляд багов:

а) Приведите любой пример выделения памяти под массив, где размер выделяемой памяти должен составлять = 235 байт и заполните его случайными значениями.

б) Переэлокейтите массив, чтобы его размерность увеличилась с 235 до 235 + 100.

Про а)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    unsigned long long size = 1024*1024*1024;
    size *= 32;
 
    char* ms = new char[size];
    
    for(int i=0;i<size;i++)
        ms[i] = i + '0';
 
    cout << ms[size-1] << endl;
 
    delete[] ms;
    return 0;
}
Само выделение памяти прошло без проблем, а вот когда началась инициализация, то на 1305 ячейке массива вижла сообщает об ошибке.
Изначально я понимал, что выделить такой большой кусок памяти тривиальными средствами не получится. Но я просто не знаю какими средствами можно решить поставленную задачу.
Миниатюры
Выделите-ка под массив память размером 32 ГБ  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 22:45     Выделите-ка под массив память размером 32 ГБ
Посмотрите здесь:

Выделить память под массив в 100500 индексе. Возможно ли? C++
C++ Динамически выделить память под массив
Как выделяется память под массив string? C++
C++ Не могу удалить динамически выделенную память под массив
C++ Выделить память под динамический массив указателей
Выделить и удалить память под 4 мерный массив C++
Как выделить память под динамический двумерный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2013, 13:18     Выделите-ка под массив память размером 32 ГБ
Еще ссылки по теме:

C++ Выделить память под массив размера 2^64 байтов
C++ Почему не вылетает ошибка при выделении памяти под динамический массив, размером 100 Гб?
C++ Выделить память под массив неизвестной длины
C++ Выделить память под массив 1000х1000 элементов типа double
Динамически выделить память под массив функций C++

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

Или воспользуйтесь поиском по форуму:
Kastaneda
13.07.2013, 13:18     Выделите-ка под массив память размером 32 ГБ
  #41

Не по теме:

Цитата Сообщение от Убежденный Посмотреть сообщение
Виртуальная память используется всегда, ее поддержка обеспечена аппаратно, в
том числе на уровне CPU.
Лирическое дополнение - если CR0.PG = 1, т.е. если включен пэйджинг.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
13.07.2013, 13:18     Выделите-ка под массив память размером 32 ГБ
Ответ Создать тему
Опции темы

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