предел выделения памяти для 32-разрядного приложения в 64-разрядной системе - PullRequest
4 голосов
/ 08 февраля 2010

Максимальное ограничение для malloc (виртуальная куча, я полагаю?) Для 32-разрядного приложения в 64-разрядной системе (Windows 2003 SP2 x64, если быть точным) 2 ГБ?

Я в основном пытаюсь продвинуть программу дальше, но безуспешно. Поэтому мне было интересно, верно ли это для ВСЕХ 32-битных приложений на платформах Win x64 bit.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 08 февраля 2010

Вы должны связать свое приложение с / LARGEADDRESSAWARE , чтобы сделать приложение более 2 ГБ доступным. Затем вы можете использовать до 4 ГБ в 64-битной ОС в 32-битном приложении.

1 голос
/ 08 февраля 2010

32-разрядные приложения имеют виртуальное адресное пространство, позволяющее адресовать до 4 ГБ в 64-разрядной версии Windows.

В разделе 4-гигабайтная настройка в документации по разработке Win32 и COM на MSDN объясняется коммутатор / LARGEADDRESSAWARE . Включение этого параметра позволит 32-разрядным приложениям обрабатывать до 4 ГБ памяти.

См. Раздел Управление памятью в библиотеке MSDN. Использование функций служб управления памятью WIN32 обеспечивает функциональность, которая недоступна в библиотеке времени выполнения C. Вам нужна эта функциональность или нет, решать только вам.

...