![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Может это XMS?
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
||||
|
||||
| LexSTV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 20.3.2007 Репутация: нет Всего: 2 |
Добрые друзья, подскажите пожалуйста, мне нужно выделить объем памяти 1 гб чтоб передать этот файл функции шифрования, разбиение не подходит в этом случае...
еще большое спасибо, если скажете, сколько памяти выделяет malloc максимально? (вроде выше написано, что 64 кб, но это совсем мало, надо хотябы 30 - 50) заранее большое спасибо |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
нет, это было написано для 16-разрядных систем. В 32-разрядных системах malloc() и new() не имеют таких ограничений. При наличие соответствующего объема физ. памяти память корректно выделится. З.Ы. А почему бы просто не взять и не попробовать сделать malloc(1024*1024*1024)? |
|||
|
||||
| LexSTV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 20.3.2007 Репутация: нет Всего: 2 |
а нельзя так сделать, ибо ругается, что закончилась квота... а надо пользоваться фунцией HeapAlloc() она выделяет памяти до 1,5 гига, правда если ее использовать при написании dll то только 200 мб, странно.... Это сообщение отредактировал(а) LexSTV - 10.9.2007, 17:29 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
это если размер физической памяти не превысит разрядность линейного адреса -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
это указатели far и near.
Посмотри Fortran, там эта huge модель тоже присутствует. Но выделять в ней сегменты придется кусками по 64 кила. То есть, твой массив разбить на несколько массивов at1, at2, ..., atn, где n-неизвестное мне число, потому что считать лень, а калькуляторам я из принципа не доверяю. Если досовская тачка, выгрузи все коммандеры, руссификаторы и остальные резидентные проги, освободишь (дай бог памяти Если это не прельщает, есть более медленный метод. создай два float fl[64К] (или один, если не будешь множить цифры между собой), и закачивай очередную порцию из файла, а предыдущие перезаписывай заместо старых). -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
LexSTV, вообще-то это неправильно выделять такой кусок памяти. Уж лучше тогда воспользуйся CreateFileMapping (Win32) или mmap (*nix). А еще лучше работать с файлом по частям.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |