/* * 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 #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; }