struct VV
{
~VV(){a = 10; cout<<"------------------------------"<<endl;}
shared_ptr<void> get(){
void* pNew =malloc(10);
return shared_ptr<void>(pNew, [this](void*p){
cout<<"a:"<<a<<endl;
});
int a=1000;
}
int main(int argc, char**argv)
{
{
share_ptr<void> p = nullptr;
{
VV v;
p = v.get();
}
}
return 0;
}
为啥v的生命周期先结束(先析构了), 为啥p回收时候还能正常使用a,而且同时能正常回收内存?