Это потому, что функция resize будет применять память из кучи.Как вы можете догадаться, размер вашей второй операции изменения размера будет 4000000000 байт, что больше, чем пространство, которое может выделить ваша система (возможно, ваш компьютер не может найти фрагмент непрерывного пространства для вас), и вызовет исключениеи сбой.
Максимальный объем памяти, к которому вы можете обратиться, зависит от многих следующих причин:
- аппаратное ограничение физической памяти.
- бит os (32или 64)
- память оставлена для пользователя.Операционная система должна удовлетворять потребности ядра в первую очередь.Вообще говоря, ядру Windows требуется больше памяти, чем Linux или Unix.
- ..
Одним словом, точный объем памяти, который вы можете использовать, трудно определить, потому что он динамическийзначение.Но вы можете сделать приблизительную оценку по новому оператору , , и вот хороший пример.