Форум программистов, компьютерный форум CyberForum.ru

Как работает "new с размещением" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как работает программа показа живых обоев на рабочем столе (winVista/7/8/8.1)? http://www.cyberforum.ru/cpp-beginners/thread1230310.html
Существует программа DreamScenes, которая позволяет устанавливать видео обои на рабочий стол (обычное видео в формате dream/wmv/mpg). Также в VLC media player есть функция показа видео в режиме обоев (исходники данной программы доступны, но разобраться в них не получилось: http://www.videolan.org/vlc/download-sources.html). Как выглядит код, реализующий такую фичу? Пока я смогла реализовать...
C++ Простая игра 3D на C++ Здравствуйте! Я бы хотел попробовать написать простенькую 3D игру на C++. Физический движок мне не нужен, так как физики там сложной не будет. Я бы хотел узнать какие графические библиотеки для этого подойдут? Достаточно ли GLFW? И самое главное: я так и не смог найти уроки по созданию 3D игр на C++ с нуля... Я даже не понял как например создать плоскость (землю) и т.д. С чего мне начать?... http://www.cyberforum.ru/cpp-beginners/thread1230306.html
Класс содержит более одного конструктора по умолчанию C++
Имеется класс: class ControlObject { private: string productsFilename; ofstream fout; ifstream fin; bool isOpenFile; bool isEmptyFile; public:
C++ Как осуществить прорисовки и анимацию в консолевских приложениях?
Как осуществить прорисовки и анимацию в консолевских приложениях? Буду очень благодарен за ссылки на книги или сайты. Сам не смог найти чего-то подобного. Особенно интересует анимация.
C++ Вычислить арифметическое выражение и вывести результат на экран http://www.cyberforum.ru/cpp-beginners/thread1230169.html
Помогите написать программу, которая a) Ввод с клавиатуры вещественных чисел: a, b, c и d. b) Проверяет исходные данные на область допустимых значений. c) Вычисляет арифметическое выражение и выводит результат на экран. \frac{\sqrt{\frac{53}{a}}+d-4a}{b+ac} Собственно написание программы не вызывает сложностей, но не могу понять куда там вставлять область допустимых значений....
C++ Структура "Студент": переделать задачу с использованием указателей Описать Структуру с именем STUDENT с полями: 1. NAME-фамилия и инициалы; 2.GROUP-номер группы; 3.SES-успеваемость(массив из 5 элементов).Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных в массив STUD1, состоящий из 10 структур типа STUDENT;записи упорядочиваются по возрастанию номера группы. - вывод фамилий и номеров группы студентов,имеющих средний балл больше... подробнее

Показать сообщение отдельно
dalay_lama
 Аватар для dalay_lama
65 / 65 / 7
Регистрация: 22.09.2012
Сообщений: 434
19.07.2014, 10:40     Как работает "new с размещением"
Всем доброго времени суток. Уважаемые знатоки, объясните пожалуйста, как работает "new с размещением"? Сейчас занимаюсь по книге С. Прата, дошёл до этой темы, но всё равно никак не могу уловить, как например срабатывает такое:
C++
1
2
char buff[512];
double *p = new (buff) double[5]
Это же разные типы? Почему такое возможно?
Как я сейчас на данный момент понимаю, что происходит: в участок памяти, в котором находится переменная buff, помещается 5 значений типа double. Соответственно мы заняли 48 байт из 512. Я это правильно понимаю? если да, то это ещё как-то у уменя в голове укладывается. Но тогда вопрос в следующем, а что будет, если я в этот буффер, положу значение, которое больше чем сам буффер? например:
C++
1
2
char buff[512];
double *p = new (buff) double[100];
И вообще, для чего может потребоваться такая операция? я имею введу new с размещением
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru