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

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

  1. hunter90

    hunter90 Гость

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

    grigsoft Well-Known Member

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

    VerhoLom Гость

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

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