What is the meaning of the below sentence in c++

Go To StackoverFlow.com

3

Possible Duplicate:
C++'s “placement new”

in the below code what does Line 3 represents, is it the way of typecasting? or what

 void someCode()
 {
   char memory[sizeof(Fred)];     // Line #1
   void* place = memory;          // Line #2

   Fred* f = new(place) Fred();   // Line #3
   // The pointers f and place will be equal

   ...
 }
2012-04-05 17:31
by Naruto
Google placement new - RedX 2012-04-05 17:32
This doesn't work because of alignment requirements. The Fred type might require stricter alignment than char. You should use aligned_storage instead, available in C++11 and TR1 - Derek Ledbetter 2012-04-05 18:30


3

This is a typical usage of Placement new.
It allows you to allocate memory and then construct objects at that particular memory location.

Line #3 essentially just calls the constructor Fred::Fred(). The this pointer in the Fred constructor will be equal to place. The returned pointer f will therefore be equal to place.

2012-04-05 17:32
by Alok Save
Hey Als, thanks for your response...how can this pointer i.e pointer to Fred will be equal to void*? - Naruto 2012-04-05 18:08
@LLL: This is what the implementation of placement new does for you.It assigns the address of place to f. This is a functionality provided by the placement new - Alok Save 2012-04-05 18:10
Thnx for clarification.. this s wat i wanted. - Naruto 2012-04-05 18:11
Ads