Как Выделить Память Большого Размера

  • Автор темы hunter90
  • Дата начала
H

hunter90

Гость
#1
Нужно одним вызовом(по другому никак) оператора new[] выделить 1,5-2 гига памяти, но под win7 х32 такое проделать невозможно - выдает ошибку, хотя на компе 4 гига оперативы стоит... как все-таки заставить винду или кого там нужно, чтобы сделать задуманное?
 

grigsoft

Well-Known Member
15.11.2005
735
0
#2
Рихтера стоит почитать..
Все адресное пространство в 32битах - 4Гб, из них верхние 2ГБ резервируется для нужд системы (туда загружаются системные библиотеки, там таблицы хендлеров и описания процесса и т.п.), несколько нижних самых страниц закрыто от доступа. Для нужд приложения остается меньше 2 ГБ, в которые грузятся их код и данные. С учетом менежеров памяти и фрагментации, обычно даже одного фрагмента в 1ГБ вряд ли удастся получить. Поэтому в том виде как задача сформулирована, оно решения не имеет на х32. Обычно это говорит о том что вы неправильно решаете основную задачу. Может быть Memory Mapped File помогут?
 
V

VerhoLom

Гость
#3
Или написание драйвера, который выстраивает таблицы страниц для памяти, выше 3,75 гб.