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
|
Спасибо, попробую на работе, дома тоже не хватит |
|