草庐IT

deallocated

全部标签

c++ - 在 shared_ptr 中使用 deallocator & allocator

我正在使用一些库函数,这些函数返回使用malloc或new创建的指针。因此,我根据使用的分配类型有自己的客户解除分配器。例如shared_ptrptr1(LibFunctA(),&MallocDeleter);//LibFunctAreturnspointercreatedusingmallocshared_ptrptr2(LibFunctB(),&newDeleter);//LibFunctBreturnspointercreatedusingnew现在,我知道这是对上述deallocator的一种非常幼稚的使用,但它还大量用于哪些其他场景?此外,如何使用客户分配器?我尝试如下分配自

c++ - std::allocator<T>::deallocate 的第二个参数的目的是什么?

Inhere是释放内存的声明。分配器类。我的问题是这个声明中的第二个参数是什么?如果此函数调用operatordelete(_Ptr),则此参数未被使用,那么它在那里有什么用?谢谢。摘自MSDN:从指定位置开始的存储中释放指定数量的对象。voiddeallocate(pointer_Ptr,size_type_Count);参数_Ptr指向要从存储中释放的第一个对象的指针。_计数要从存储中释放的对象数。 最佳答案 当您调用deallocate时,您必须给它一个您之前通过调用allocate获得的指针以及您传递给allocate的大小

c++ - 为什么 std::allocator<>::deallocate() 有一个未使用的 size_type 参数?

使用std::allocator时,deallocate函数需要pointer参数,和一个size_type参数(std::allocator::deallocate(std::allocator::pointerp,std::allocator::size_type)。但是,没有使用size_type,也不是可选的。那么为什么它在那里?这让我很困惑,因为它应该是可选的,甚至不在那里,因为它没有在函数中使用.编辑:MSVC的分配器实现deallocatevoiddeallocate(pointer_Ptr,size_type){//deallocateobjectat_Ptr,igno

c++ - boost::asio -- asio_handler_deallocate 在 io_service::~io_service() 中调用,在 io_service::stop() 之后

我有一个ip::udp::socket用io_service构建.只有一个boost::thread调用io_service::run()方法,以及io_service::work的一个实例防止io_service::run()从返回。我的ip::udp::socket的完成处理程序有定制asio_handler_allocate()和asio_handler_deallocate()函数,由my::custom_memory_pool支持.当我的应用程序退出时,这一系列事件发生在我的关闭线程上:ip::udp::socket::close()work::~work()io_servi

c++ - std::allocator 中 "destroy" "destructor" "deallocate"之间的区别?

在C++std::allocator中,有三个方法与一个共同的概念相关:解除分配销毁析构函数我想知道:从内存管理的角度来看,它们之间有何不同?我什么时候应该使用这个而不是那个?谢谢!编辑:更具体的疑问:一开始不好意思笼统地说,这里有一些我不明白的地方。析构函数是做什么的?文档没有说到析构函数调用时内存是否会自动释放destroy用于调用对象的析构函数,这里的“对象”是什么意思?再次感谢! 最佳答案 只是来自cppreference.comdocumentation的简短描述为我非常清楚地解释差异"1.Whatdoesdestruct

C++ allocator<X>::deallocate(NULL,1) 允许吗?

free(NULL)和::operatordelete(NULL)都是允许的。分配器概念(例如std::allocator是否也允许deallocate(NULL,1),或者是否需要自己保护它? 最佳答案 您需要添加自己的支票。根据§20.4.1.1/8,deallocate要求:pshallbeapointervalueobtainedfromallocate().nshallequalthevaluepassedasthefirstargumenttotheinvocationofallocatewhichreturnedp.a

iOS 编程 : 'super dealloc' crashes app

这是我第一次在这个网站上提问。作为一名业余开发人员,我总能在这个网站上找到我的问题的答案,但我找不到解决我当前问题的答案。在我的iPad应用程序中,我从rootView调用了一个新的UIViewController:DisplayTheMapViewController_iPad*root=[[DisplayTheMapViewController_iPadalloc]init];displayTheMapViewController=root;[[selfnavigationController]pushViewController:displayTheMapViewControll

iphone - 请求发送获取错误 : [CFString release]: message sent to deallocated instance 0x6a83e00

我想检查苹果的应用程序版本,所以我发送如下请求-(void)connectToCheckVersion{NSString*url=@"http://itunes.apple.com/lookup?id=466424846";TTURLRequest*_request=[TTURLRequestrequestWithURL:urldelegate:self];_request.httpMethod=@"GET";_request.cachePolicy=TTURLRequestCachePolicyNone;_request.shouldHandleCookies=NO;TTURLJSO

ios - 要在 ARC 下的自定义 UIView 的 dealloc 中消除导出?

通常在UIViewController子类中,我将viewDidUnload中的所有outlet清空。但是在我的自定义UIView中,我是否应该在dealloc中取消那些导出(在我的自定义UIView中定义)?ARC会自动执行这些操作吗? 最佳答案 不,仍然在viewDidUnload中执行以尽快将它们从内存中取出。ARC意味着您不需要在任何地方执行此操作,但如果您这样做,它仍然会更有效率。尽管在您的任何类中使用arc时,您都不需要在死锁中为nil属性。 关于ios-要在ARC下的自定义

ios - Dealloc 被调用但实时内存没有减少

我有三个UIViewControllers,每当我关闭它们时,它们的所有dealloc方法都会被调用。这正是我想要发生的事情,这样内存就不会膨胀。但是,当我运行配置文件来测试内存使用情况和一些泄漏时,我注意到即使调用了dealloc,实时内存也不会以某种方式减少。更重要的是,每当我从一个UIViewController切换到另一个(顺便说一句,这是预期的)时,它都会不断增加。有时会减少,但只有少数内存会减少。我确定调用了每个UIViewControllers的dealloc方法,因为我在这些方法中放置了一个日志。此外,不,我使用Profile时没有记录到泄漏。​​那么谁能解释一下为什么