Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 10:41   #1
hunterbliat
Новичок
Джуниор
 
Регистрация: 13.04.2012
Сообщений: 1
Вопрос как выделить большой кусок памяти?

Нужно одним вызовом(по другому никак) оператора new[] выделить 1,5-2 гига памяти, но под win7 х32 такое проделать невозможно - выдает ошибку, хотя на компе 4 гига оперативы стоит... как все-таки заставить винду или кого там нужно, чтобы сделать задуманное?
hunterbliat вне форума Ответить с цитированием
Старый 13.04.2012, 19:03   #2
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Вероятнее всего можно так перестроить алгоритм, что этого делать не придется.
Алгоритм в студию
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 13.04.2012, 19:50   #3
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
По умолчанию

Цитата:
Сообщение от hunterbliat Посмотреть сообщение
Нужно одним вызовом(по другому никак) оператора new[] выделить 1,5-2 гига памяти, но под win7 х32 такое проделать невозможно - выдает ошибку, хотя на компе 4 гига оперативы стоит...
на 32-битных системах невозможно выделить больше 1,5 ГБ одним куском, теоретически это можно, но должно выполниться очень много условий. а больше 2 ГБ невозможно физически так как просто напросто это не позволяет архитектура, потому что в 32-битных системах каждый процесс находится в своём виртуальном адресом пространстве размером 2 ГБ.

и на будущее: большие куски памяти рекомендуется выделять с помощью VirtualAlloc
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Старый 13.04.2012, 23:51   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Rock-n-Rolla
Цитата:
потому что в 32-битных системах каждый процесс находится в своём виртуальном адресом пространстве размером 2 ГБ.
размер вирт пространства в 32-битных системах 4 гига. просто часть отдается под ядро. это в виндах по дефолту делится пополам, хотя ядро можно и подвинуть.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Содержит ли переменная определенный кусок текста - как? Ник Харди Microsoft Office Excel 1 20.01.2012 15:07
Как работает данный кусок кода? munthrekosh Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 14.12.2011 13:47
Как нарисовать кусок изображения на элементе TImage pavellyba Мультимедиа в Delphi 2 20.06.2011 08:17
Как виделить большой кусок памяти под массив? Tania Мультимедиа в Delphi 7 23.04.2010 01:53
Как вставить кусок текста в текст Tomatos Общие вопросы Delphi 5 24.09.2009 21:00