1
0
Fork 0
This repository has been archived on 2021-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
uni-m.cds-adv-prog/ex1.4/leak_memory.cpp

40 lines
832 B
C++

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