草庐IT

St9bad_alloc

全部标签

c++ - 您如何确定由 'std::map' 创建的用于 'boost::pool_allocator' 的节点的大小(以跨平台方式)?

更新根据评论、回答和其他研究,我得出的结论是set之间通常没有区别。和一个map在节点开销方面。我接下来的问题是:Howdoyoudeterminenodeoverheadforconvenientuseofboost::pool_allocatorasacustomallocator?并且,进一步的更新:节点开销可能永远不会超过4个指针的大小,因此只需清除sizeof(T)的boost池。,sizeof(T)+sizeof(int),sizeof(T)+2*sizeof(int),sizeof(T)+3*sizeof(int)和sizeof(T)+4*sizeof(int)(或int

c++ - std::scoped_allocator_adaptor 和一个使用 std::allocator_arg_t 构造函数的类

我在这里找到了一些词http://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor/constructifstd::uses_allocator::value==true(thetypeTusesallocators,e.g.itisacontainer)andifstd::is_constructible::value==true,thencallsstd::allocator_traits::construct(OUTERMOST(*this),p,std::allocator_arg,inner_allocator

c++ - std::aligned_alloc() 的重新分配等效项是什么?

我注意到了std::aligned_alloc()进入C++17,我喜欢它。但是-当我需要重新分配时会发生什么?我可以手动执行此操作(假设当前分配地址的可用空间正好是我要求的空间量),但标准库中不应该有这样的工具吗? 最佳答案 没有这样的标准调用等价物。更重要的是,微软最新的C++实现仍然有自己的_aligned_malloc()而不是现在标准化的std::aligned_alloc(),和heretheyexplainwhy:aligned_alloc()willprobablyneverbeimplemented,asC11sp

c++ - std::allocator_traits::construct with const 指针

下面的代码可以正常编译:#include#includeintmain(){constint*a=newint(5);std::cout>;autoalloc=std::allocator();at::construct(alloc,a);std::cout在libstdc++的背后::new((void*)a)int;但是a是const!这是未定义的行为吗?或者placementnew不算修改?我修改了*a的值,是const。据我了解,这是不允许的:Modifyingaconstobjectthroughanon-constaccesspathandreferringtoavolat

c++ - 链接到 MFC 项目的没有 mfc 的 C++ 静态库是否抛出 bad_alloc 或 CMemoryException*?

我正在为MFC应用程序开发一个大型、老化的代码库。随着时间的推移,该代码已被许多开发人员处理,因此,我们在整个代码中采用三种不同的方式来处理new分配失败的可能性。第一种方法是在new的结果上测试NULL。我们不使用nothrownew.obj,所以这显然是一个需要清除的错误。第二个是捕获CMemoryException*(是的,编译器中启用了C++异常)。据我了解,MFC覆盖了标准的operatornew,而是抛出了这个东西。我相当确定这第二种方法在MFC应用程序本身中是正确的。MFC使用其奇怪的CMemoryException抛出版本覆盖新的。最后一个来self们的基础人员,他们精

c++ - 内存泄漏 : unable to break on a memory allocation number

我正在尝试找出内存泄漏问题。我的项目是一个基于ATL的对话框项目,它使用DirectShow和标准库。我的程序中总共有45个内存泄漏,每个都是24个字节。我在我的stdafx.h中#define'd_CRTDBG_MAP_ALLOC等,以及DEBUG_NEW以获取每个内存泄漏的文件和行号。但是,没有打印文件行号。内存块都是“普通”block,看起来像这样:{180}normalblockat0x003E6008,24byteslong.Data:_>>W>A0AE3E00B05F3E00A0AE3E0057000000我尝试将以下行添加到_tWinMain()的开头_CrtSetBre

c++ - 子类化 stringstream 给出 "0x401bad ABC"而不是 "Foo ABC"

#include#include#includeclassA:publicstd::stringstream{public:A(){}~A(){std::cout我期待程序打印:FooABC代替0x401badABC为什么打印0x401badABC?g++--versiong++(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3 最佳答案 operator分两部分实现:字符数据的重载是自由函数。其他重载是std::ostream的成员.我们担心firstone对于那个字符串文字。正如您在链接中看到的,所有重载都采用

iphone - 带有 NSFetchedResultsController 的 EXC_BAD_ACCESS

试图追踪我在NSZombieEnabled时遇到的这个错误。当获取的结果Controller尝试执行获取时,我得到一个EXC_BAD_ACCESS。调试器说:-[CFNumberretain]:messagesenttodeallocatedinstance0x6e88d10回溯说:#00x014bbe1ein___forwarding___()#10x014bbce2in__forwarding_prep_0___()#20x0145c490inCFRetain()#30x0147929ainCFNumberCreate()#40x00b221edin-[NSPlaceholderN

ios - 使用 NSString getCString 时出现 EXC_BAD_ACCESS 错误

我正在尝试解析一些HTML。我使用stringWithContentsOfURL来获取HTML。我试图将其加载到字符数组中以便解析它,但在调用getCString时我因EXC_BAD_ACCESS错误而崩溃。相关代码如下:-(void)parseStoryWithURL:(NSURL*)storyURL{_paragraphs=[[NSMutableArrayalloc]initWithCapacity:10];_read=NO;NSError*error=nil;NSString*originalFeed=[NSStringstringWithContentsOfURL:storyU

ios fwrite 函数 EXC_BAD_ACCESS

我尝试在iPhone应用程序中使用fwrite(C函数)。出于自定义原因,我不想使用writeToFile,而是使用fwriteC函数。我在didFinishLaunchingWithOptions函数中写了这段代码:FILE*p=NULL;NSString*file=[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/Hello.txt"];charbuffer[80]="HelloWorld";p=fopen([fileUTF8string],"w");if(p!=NULL){fwrite(buffer,strl