环保材料 技术支持 东莞网站建设腾讯会议多少钱一个月
shared_ptr :
共享指针 管理多个客户使用的内存,多客户都拥有该内存块,
当共享指针不再拥有该内存时,内存会自动释放,
多用于并发领域,当所有访问该内存的线程都退出时,释放该内存
共享指针可被随意复制,与独占指针相反,独占指针不能被复制
在内存与时间上有一定的开销
可能出现的循环引用问题
当两个或多个由 shared_ptr 对象控制的资源保留有相互引用的 shared_ptr 对象时,会发生循环.
示例:
创建并使用共享指针:
//函数返回一个共享指针
shared_ptr<int> funcSharePtr()
{//创建两个共享指针并动态分配内存shared_ptr<int> p1{ new int{} };shared_ptr<int> p2{ new int{} };//创建一个共享指针并复制另一个共享指针地址shared_ptr<int> p3 = p2;//指针复制,指针p2,p3指向同一块内存cout << "共享指针p1指向的内存地址:" << p1 << endl;cout << "共享指针p2指向的内存地址:" <&