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

Тема в разделе "MS Visual C++", создана пользователем hunter90, 13 апр 2012.

  1. hunter90

    hunter90 Гость

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

    grigsoft Well-Known Member

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

    VerhoLom Гость

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

Поделиться этой страницей