Минимальный предел реализации для максимального размера объекта, указанного в стандарте C ++, составляет 262 144 байта. Реализация может поддерживать большие объекты, и многие это делают.
Другим ограничением является размер адресного пространства. Например, в 32-разрядном адресном пространстве может быть адресовано не более 2 32 байтов памяти. Кроме того, часть этого адресного пространства (обычно половина или четверть) будет зарезервирована для ядра операционной системы.
Кроме того, потенциальным ограничением является объем доступной физической памяти в системе (включая подкачку) - если операционная система не перезагружает память и память объекта никогда не записывается.
Кроме того, некоторые операционные системы могут ограничивать общий объем памяти, который может выделить процесс, например RLIMIT_DATA
на POSIX.