/*
* Deliberately leak memory
*
* Free memory decreases for a second.
* However, because the program quits, the kernel frees the used memory
* If run for some time, my swap space would fill, afterwards my computer is brought to a halt.
*/
#include <iostream>
#define K 1000
#define M K*K
#define G K*M
#define MEMORY_SIZE_IN_CHARS G
void make_throwaway_ptrs(int leak_size ) {
for ( int i = 0; i < leak_size ; i++)
{
char* throwaway_ptr = new char;
}
// oops, we are not returning the pointers
// this means it goes out of scope when the function ends
int main() {
make_throwaway_ptrs(MEMORY_SIZE_IN_CHARS);
std::cout << "We leaked " << MEMORY_SIZE_IN_CHARS * sizeof " " << " bits" << std::endl;
std::cout << "Ready to kill the process? (press Enter)" << std::endl;
std::cin.ignore();
return 0;