title: Will leaked memory always remain lost for the duration of C/C++ program?
body: <p>The following code has an obvious memory leak:</p>
  
  <pre><code>void Memory_Leak(void);
  void Lots_Of_Other_Stuff(void);
  
  int main(){
  
      Memory_Leak();
      Lots_Of_Other_Stuff();
  }
  
  void Memory_Leak(void)
  {
    int *data = new int;
    *data = 15;
    return;
  }
  void Lots_Of_Other_Stuff(void){
      //allocates/deletes more memory
      //calls functions
      //etc..
      return;
  }
  </code></pre>
  
  <p>For the duration of the program, can the memory ever be recovered?<br>
  Can the program write over lost memory, and reach a state where no memory has been lost?<br>
  Can the Operating System recover it while the program is still running?</p>