C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
максимальный размер динамически выделяемой памяти, максимальный размер динамически выделяем
vvkot
Отправлено: 10.11.2006, 22:28


Ученик-кочегар

Группа: Участник
Сообщений: 20



На компе физически установлено 4 гига памяти, пытаюсь выделить calloc-ом более 1 гб — не проходит. Что у сибилдера 1 гиг предел, пробовал микрософтовском си, запросто выделяет и 2 гига и 3. Может в свойствах проекта, что подправить нужно, размер куси пробовал увеличить не помогает.
Grigoriy
Отправлено: 23.11.2006, 23:25


Мастер участка

Группа: Участник
Сообщений: 381



WINDOWS-API-функцией GlobalAlloc память выделять не пробовали ?
Тогда используйте именно API. Блок выделенный АПИ-функцией освобождаем также АПИ функцией GlobalFree.
Неперемещаемый блок памяти можно выделить и освободить так
CODE

void* p;
p=GlobalAlloc(GMEM_FIXED, 1500000000);
//-------------------------
GlobalFree(p);

выделяет блок памяти неперемещаемый размером около полтора гигабайта, блок используется, блок освобождаем. У себя на машине не пробовал... нехватит памяти.

Блок памяти заполненный нулями
CODE
p=GlobalAlloc(GMEM_ZEROINIT, 1500000000);

QUOTE

The GlobalAlloc function allocates the specified number of bytes from the heap. In the linear Win32 API environment, there is no difference between the local heap and the global heap.

HGLOBAL GlobalAlloc(

   UINT uFlags, // object allocation attributes
   DWORD dwBytes  // number of bytes to allocate  
  );


vvkot
Отправлено: 23.11.2006, 23:47


Ученик-кочегар

Группа: Участник
Сообщений: 20



Спасибо, попробую на работе, дома тоже не хватит sad.gif

Вернуться в Вопросы программирования в C++Builder