Максимальное использование памяти

Является ли их любая программа на C ++, которая может максимизировать использование памяти, пока не достигнет «дампа памяти» (синий экран, а затем перезапустить). Просто любопытно, чтобы сделать это на Windows XP.
Что для этого требуется?
Может ли неограниченный цикл с умножением или сложением максимизировать использование памяти? Я думаю нет. Это просто увеличивает загрузку процессора (но, к сожалению, не до 10-20%). Тогда какой путь?

0

Решение

Память используется при выделении переменных. Самый быстрый способ — либо выделить действительно большой массив заранее, либо использовать new или же malloc внутри цикла:

while (true)
{
new int[10000];
}

это в конечном итоге вызовет исключение, когда у вас закончится память.

1

Другие решения

Если вы хотите съесть всю доступную память, просто сделайте это:

int main()
{
while(true)
{
char *buffer=new char[1024];
}

return 0;
}

Это съест память в 1K кусках. Однако все, что это сделает, — это задействует всю виртуальную память, доступную вашему процессу (около 2 ГБ в 32-битной Windows), после чего ваша программа упадет и умрет, не затронув никого другого.

Если вы хотите написать что-то, что приведет к падению Windows при нехватке памяти, вам нужно будет запустить свой код в пространстве ядра, поэтому вам нужно будет написать что-то вроде драйвера устройства.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector