Код: Выделить всё
char *buf = new char[sizeof(string)]; // pre-allocated buffer
string *p = new (buf) string("hi"); // placement new
string *q = new string("hi"); // ordinary heap allocation
< /code>
[*] Но я думаю, что здесь BUF < /code> является указателем на выделенное и построенное динамическое массив символов по умолчанию. Таким образом, символы в массиве инициализированы по умолчанию и имеют неопределенные значения.
[*] Я думаю, что используя новое размещение Код: Выделить всё
char *buf = static_cast(operator new[](sizeof(string)));
Вот ссылка на исходный ответ: < /p>
Что есть для «размещения нового»? < /p>
Подробнее здесь: https://stackoverflow.com/questions/678 ... expression
Мобильная версия