【发布时间】:2013-06-10 01:00:55
【问题描述】:
我遇到了一些广泛使用allocate 的代码。例如,
char* recordDate = allocate<char>(20)
我以前从未使用过 allocate,因此问题是,malloc 和 allocate 有什么区别?
虽然我不清楚它的优势,但我可以说的一个区别是,malloc 提供原始内存,而 allocate 似乎会提供原始内存,但我不必将指针转换为特定类型。
【问题讨论】:
-
allocate到底是什么? -
@Mehrdad 它是标准的一部分。见 std::allocator::allocate en.cppreference.com/w/cpp/memory/allocator/allocate
-
@CoryKlein 那不是
allocate<>,那是std::allocator::allocate(我无法想象“代码广泛使用它”始终是分配器实现的一部分,尤其是这个@ 987654327@ 示例)。 -
@CoryKlein:等等,什么?
std::allocator<T>中allocate的哪个重载接受了char这样的类型参数,如allocate<char>所示?
标签: c++