https://en.cppreference.com/w/cpp/language/range-for
every object has a pointer to itsleft.
stack operations are very quick
it‘s computationally expensive to search variables in a stack, when the scopes and functions are very large.
So, keep your scope and func small.
An example:
then we create a new scope
end of scope, and the scope does 2x pop, and remove everything from the first parenthesis
(beauty of C++ is that it manages its memory based on scopes)
the problem now is that prt loses its value
heap is much more complicated than stack
heap usually has much larger volume than stack
memory management is not automatically done.
?????
eg, first we assign ptr 1 and 2 to two different velues
then we assign ptr 2 to the address of the upper variable
the system thinks we might use the bottom variable, but we have lost access to it, and we can‘t remove it by delete some_ptr
we tried to delete some memory twice.
in line 10, every time we allocate a new data, system creates a new ptr to it. we can‘t use line 16 to free the memory
this is the way before c++11
原文地址:https://www.cnblogs.com/ecoflex/p/10204432.html