Есть ли такая функция ?
От: shgalex  
Дата: 04.03.07 06:28
Оценка:
Есть ли в С++ функция которая ,как для встроенных типов так и для производных, выдаёт то максимальное количество элементов ,которое можно выделить в динамической памяти ?
Речь идёт об объектах размещаемых в динамической(свободной) памяти или объектами из кучи при помощи оператора new.
Re: Есть ли такая функция ?
От: LaptevVV Россия  
Дата: 04.03.07 06:46
Оценка:
Здравствуйте, shgalex, Вы писали:

S>Есть ли в С++ функция которая ,как для встроенных типов так и для производных, выдаёт то максимальное количество элементов ,которое можно выделить в динамической памяти ?

S>Речь идёт об объектах размещаемых в динамической(свободной) памяти или объектами из кучи при помощи оператора new.
В стандартном С++ не встречал.
Объем динамической памяти и ее устройство — зависят от реализации, поэтому очевидно в стандарте и нет.
Например в дотнете из-под окошек new может выделить 7fffffff байт.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Есть ли такая функция ?
От: IID Россия  
Дата: 04.03.07 18:39
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, shgalex, Вы писали:


LVV>Например в дотнете из-под окошек new может выделить 7fffffff байт.


На 32 битной платформе ? (не серверной с /3GB)
kalsarikännit
Re[3]: Есть ли такая функция ?
От: shgalex  
Дата: 05.03.07 06:11
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, LaptevVV, Вы писали:


LVV>>Здравствуйте, shgalex, Вы писали:


LVV>>Например в дотнете из-под окошек new может выделить 7fffffff байт.


IID>На 32 битной платформе ? (не серверной с /3GB)

Да 32 битной платформе.
Re[2]: Есть ли такая функция ?
От: gear nuke  
Дата: 08.03.07 06:52
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Например в дотнете из-под окошек new может выделить 7fffffff байт.


Compiler Error C2148 "total size of array must not exceed 0x7fffffff bytes" не имеет никакого отношения к лимитам ОС. 2Гб одним куском 32х битный Виндовс никогда не даст, в рантайме получим исключение из new. Реально иногда можно получить 1.5 — 1.8 непрерывных Гб. А можно и не получить, как здесь
Автор:
Дата: 19.05.06
(там все эти извраты как раз что бы получить много памяти в дотнете)
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[3]: Есть ли такая функция ?
От: gear nuke  
Дата: 08.03.07 07:28
Оценка:
Здравствуйте, IID, Вы писали:

IID>На 32 битной платформе ? (не серверной с /3GB)


Дык даже с /3GB не получить столько непрерывной памяти. SharedUserData мапится на адреса 0x7ffe0000. И судя по функциям вроде GetSystemTime этот адрес константа не только в ядре.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.