compiler construction - dynamically allocating a c++ object without using the new operator -


(c++/win32)

consider following call:

object obj = new object(a,b); 

other allocating virtual memory needed instance of object, else going on under hood there? compiler places explicit call constructor of object?

is there way initialize c++ object dynamically without use of keyword new?

if want initialize object in given memory zone, consider placement new (see this)

btw, ordinary object* n = new object(123) expression equivalent (see operator ::new)

 void* p = malloc(sizeof(object));  if (!p) throw std::bad_alloc;   object* n = new (p) object(123); // placement new @ p,                                    // invokes constructor 

but implementation use non-malloc compatible allocator, don't mix new , free!


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -