2016-10-18 3 views
0

Ich habe diese Codezeile, die ich nicht verstehen kann.C++ Gießen eines Zeigers in einem neuen?

ClassA *pointer= new((char*)BASE_ADDRESS)ClassA ; 

Was bedeutet das ((char*)BASE_ADDRESS)?

BASE_ADDRESS ist ein Speicherort.

+6

Es ist eine "Platzierung neuer Ausdruck". –

+5

Lesen Sie über 'Platzierung neu' http://en.cppreference.com/w/cpp/language/new –

+0

Sie werden wahrscheinlich alles finden, was Sie über die Verwendung von Placement-Neu [von ** dieser Frage **] wissen müssen (https : //stackoverflow.com/questions/222557/what-uses-are-there-for-placement-new). – WhozCraig

Antwort

4

Dies wird placement new genannt. Er konstruiert ein Objekt vom Typ ClassA und legt es an dem von BASE_ADDRESS angegebenen Speicherort ab.

Verwandte Themen