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

Операторы динамического выделения памяти - new/delete - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выделение памяти http://www.cyberforum.ru/cpp-beginners/thread264315.html
Не знаю как точно сформулировать вопрос. Где можно прочитать о принципах выделения, считывания, записи и распределения памяти в кэше, стэке, куче. Как раздаются адресса, про то что память выделяется блоками и почему именно такими(на слуху блоки по 8 байт и 64), скорость выделения(записи и считывания) и соответсвенно возможная оптимизация.
C++ Длинная арифметика Мне дали задание с вычеслениями длинной арифметики. С мысл в том что там все действия происходят с символьными масивами. Я так и не разобрался как это всё работает. Обьясните. http://www.cyberforum.ru/cpp-beginners/thread264314.html
C++ Построить абстрактный класс
Никак не успеваю с лабораторными, помогите пожалуйста. Построить абстрактный класс Locate, описывающий позицию на экране, и производные классы Figure и Text, описания некоторых фигуру и текст. Построить класс FiguraText производный от классов Figure и Text. Написать функции (методы) Show () и Move () для всех классов.
C++ C++/ Оператор for
1. Посчитать суму чисел от 100 до 200 которые кратные 17 2. Каждые 3 часа амёба надвое, посчитать сколько будет амёб будет через 120 часов
C++ Определить процедуры выполнения арифметических операций над комплексными числами http://www.cyberforum.ru/cpp-beginners/thread264275.html
Добрый день. Помогите пожалуйста решить задачу на си. Тема:Программирование задач с использованием нескольких функций на языке Си. Даны действительные числа u1, u2, v1, v2, w1, w2. Получить - комплексные числа u1 + iu2, v1 + iv2, w1 + iw2. (Определить процедуры выполнения арифметических операций над комплексными числами.)
C++ Cетевая игра "крестики-нолики" Помогите, на курсовой задали, сделать сетевую игру крестики-нолики в консоли, нужно сделать сервер и клиенты. Там необходимо создать библиотеки у меня уже почти все готовы только как все это собрать в рабочую программе, чтобы был сервер, и клиент не знаю, так как очень плохо в этом разбираюсь тем более сетевая игра. Ниже прилагаю полный текст задания. Вдруг кому уже давали подобное задание... подробнее

Показать сообщение отдельно
KBEPTMEH
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 12
26.03.2011, 13:02     Операторы динамического выделения памяти - new/delete
Здравствуйте.

Я немного не понимаю некоторый момент, связанный с динамическим выделением памяти, а именно - с объемом выделяемой памяти.

Дано
Разные персональные компьютеры:
1. Win XP Pro SP3 32bit - 2 Gb RAM;
2. Win XP Pro SP3 32bit - 3 Gb RAM;
3. Win Server 2003 64 bit - 8 Gb RAM.

Задача
Динамически выделить крупный "кусок" RAM (1 Gb и более), а именно - создать массив типа структура.

Мое решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* Общий размер структуры = 20 Байт */
struct my_struct 
{
  long int f0;
  long int f1;
  long int f2;
  long int f3;
  long int f4;
}
 
my_struct *p_my_array;
 
/* Пытаюсь выделать 20 * 30000000 Байт */
try 
{
  p_my_array = new my_struct[30000000];  
} catch (bad_alloc) { /* Обработка исключения в случае неудачи при выделении памяти */ }
 
/*
...
Ряд действий
...
*/
 
delete [] p_my_array;
Проблема
Ни на одном из трех указанных выше ПК - не получается выделить объем памяти более 512 МБайт.
В момент попытки динамического выделения памяти - ОС и все запущенное ПО потребляет не более 700 МБайт.
То есть всегда свободно достаточное количество памяти, чтобы можно было ею воспользоваться.
(В приведенном примере производится попытка выделения памяти объемом больше 512 МБайт).

Вопрос
1. Возможно ли вообще выделать больше 512 Мбайт памяти динамически или нет?
2. Можно ли заставить программу "кушать" всю свободную оперативную память и соответственно манипулировать всей свободной оперативной памятью в системе? (К примеру 8 Gb RAM).
3. На сколько я знаю, в С++ рациональнее пользоваться операторами new/delete, вместо функций malloc()/free(). Это правда?

Пост Скриптум
Не спрашивайте зачем так много программе нужно оперативки. Просто нужно

Всем заранее спасибо за Ваши ответы и подсказки.
С уважением.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru