代码如下:
struct set_t {
static const uint32 MAX_ENTRIES=128;
uint32 num_entries;
item_t entries[MAX_ENTRIES];
inline void add_back(item_t item){
***new (&entries[num_entries]) item;***
++num_entries;
}
};
此行:“新(&entries [num_entries])个项目;”令人困惑,它实际上分配内存吗?
答案 0 :(得分:1)
请看一下这个问题:What uses are there for "placement new"?
new (address) varname;
是所谓的放置新运算符,它在预分配的缓冲区上构造一个对象。
所以您的问题的答案是:它不会分配新的内存。