【发布时间】:2016-08-04 10:20:28
【问题描述】:
我知道 std::vector.reserve() 方法保留了向量的容量,并且访问保留但未使用值手动初始化的向量将导致未定义的行为。但是有人告诉我,reserve() 方法实际上确实在分配的内存中填充了一些东西,所以它不可能是未初始化的内存分配,对吧?那么有没有办法在 c++ 中分配未初始化的内存(例如 mcalloc() 如何为 c 工作)?
编辑:对不起,我在这里输入了错误的词,它应该就像 mcalloc() 对 c 的工作方式一样。我已经改变了。
【问题讨论】:
-
like how calloc() works for c.. 你是在开玩笑还是认真的?这就像 180 度相反的陈述。 -
calloc分配初始化内存。有一种方法可以在 C++ 中分配未初始化的内存,就像malloc对 C 的工作方式一样:它是使用malloc。还有一种在 C++ 中分配内存的方法,就像calloc对 C 的工作方式一样:使用calloc -
答案有点分歧——您能否澄清
std::vector是您问题的症结还是只是一个例子?是要将未初始化的对象放入向量中,还是干脆自己分配未初始化的内存?
标签: c++ c memory-management