【发布时间】:2013-04-11 15:53:22
【问题描述】:
我正在创建一个结构,该结构在堆上具有一个 unordered_map 字段。当我使用 new 时,我可以毫无问题地添加它。但是使用 calloc 时,由于存储桶大小为 0,因此插入时出错。在调用 Reserve 后它工作正常。
那么,在结构体上调用 calloc 时,unordered_map 构造函数不会运行吗?我很困惑为什么如果它在一个新的结构中,它似乎有一个非零的桶大小。除了打电话给保护区外,还有更好的方法吗? (在这种情况下我不能使用 delete,所以我需要坚持 calloc 调用)
【问题讨论】:
-
为什么要强制使用calloc?
-
这是遗留代码。我只是在其中添加一个新字段,它恰好是一个无序的地图。
-
很公平。我想这意味着你也不能使用placement new?
标签: c++ memory-management malloc calloc