Я пытаюсь выделить память 1 гигабайт, используя malloc()
на Windows, и это не удается. Я знаю неопределенность malloc
. Что является лучшим решением для распределения памяти на 1 гигабайт?Malloc не может выделить память 1 GiB на Windows
ответ
Если вы используете 32-разрядное (x86) приложение, вы вряд ли сможете выделить 1 ГБ непрерывной памяти (и, конечно же, не можете выделить 2 ГБ). Что касается этого, вы должны увидеть почтенную презентацию «Почему ваша игра в Windows не будет работать в 2 147 352 576 байтах» (Gamefest 2007), прикрепленной к this blog post.
Вместо этого вы должны создать приложение как собственное 64-разрядное (x64) приложение.
Вы можете включить /LARGEADDRESSAWARE
и придерживаться 32-разрядного приложения на Windows x64, но оно имеет ряд особенностей и может ограничить, какие библиотеки поддержки сторонних разработчиков вы можете использовать. Лучшим решением является использование родной x64, если это возможно.
Это неверно. Адресное пространство для 32-разрядных приложений с большим адресом Space - 4 ГБ в Windows 64. – MSalters
Как подробно изложено в презентации, вы можете использовать LAA для 32-разрядных приложений на Windows x64, чтобы получить 4 ГБ памяти, но гораздо лучшим решением является использование родной x64 в первую очередь. –
enable/LARGEADESSESSAWARE работал для меня. Спасибо – chenna
Используйте флаг /LARGEADDRESSAWARE
, чтобы сообщить Windows, что вы не делаете забавные вещи с адресами. Это разблокирует дополнительное 2 ГБ адресного пространства на Win64.
- 1. Malloc не может выделить память для архитектуры
- 2. максимальная память, которую malloc может выделить
- 3. Malloc не смог выделить память
- 4. Malloc не может выделить память на atmega2561 и freeRTOS
- 5. Не могу выделить память с помощью MALLOC
- 6. Единорог не может выделить память
- 7. Как выделить память, используя этот оператор malloc?
- 8. Socket.IO malloc: *** ошибка: не может выделить область
- 9. Windows не может выделить память и останавливает программу?
- 10. Qt не может выделить высокую память
- 11. Что делать, если конструктор не может выделить память на C++?
- 12. Malloc не возвращает память, почему?
- 13. Python MemoryError: не может выделить память массива
- 14. мерзавец выборки: не может выделить память
- 15. Почему mmap не может выделить память?
- 16. malloc не выделяет память
- 17. ошибка AWK: не может выделить память
- 18. новый оператор не может выделить память
- 19. Docker toolbox не может выделить память
- 20. Развернуть capistrano, не может выделить память
- 21. Почему мой конструктор не может выделить память
- 22. Не удается выделить память
- 23. выделить структуру и память для элементов в одном malloc
- 24. Что может заставить malloc инициализировать память?
- 25. выделить память для матрицы (п * 1)
- 26. Невозможно выделить память во время выполнения без использования malloc?
- 27. Как выделить память с использованием C++ new вместо C malloc
- 28. Как выделить память указателям
- 29. Как выделить память динамически, когда массив объявлен с 1 элементом
- 30. Почему malloc не может выделить огромную память в пространстве ядра FreeBSD-x64?
вам нужно 1GB ??? –
Почему вы используете 'malloc()' в C++? Вы используете Win32 или Win64? –
Помните, что 'malloc' выделяет * смежный * кусок памяти, и если нет большого блока, распределение будет терпеть неудачу. –