0

code looks like below:

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;
       }

};

This line: "new (&entries[num_entries]) item;" is puzzling, does it actually allocate memory?

huaxin
  • 21
  • 1

1 Answers1

1

please have a look at this question : What uses are there for "placement new"?

new (address) varname;

is the so called placement new operator, which constructs an object on a pre-allocated buffer.

So the answer to your question is: it does not allocate new memory.

Carsten Greiner
  • 2,928
  • 2
  • 16
  • 20