The lifetime of an object whose memory is reserved at compile time (a statically allocated object) is simply the time required to execute the instructions for all statements in its scope. A statically allocated object "dies" when its identifier goes out of scope. The lifetime of an object whose memory is reserved at run-time (a dynamically allocated object) extends from the time at which the memory is allocated to the time at which is deallocated. For dynamically allocated objects, there is no connection between scope and lifetime.