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

realloc и вызов конструктора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что это за компонент? http://www.cyberforum.ru/cpp/thread300352.html
Всем привет. Кто ни будь, знает в какой библиотеке есть компоненты: TLight и TTrend ? Знакомы ли вообще такие названия кому ни будь?
C++ Visual C++ и Builder C++ сильно отличаются друг от друга? Доброго времени суток. У меня такой вопрос, Visual C++ и Builder C++ сильно отличаются друг от друга? Например если прога была написана в Visual, то будет ли она корректно работать в Builder? http://www.cyberforum.ru/cpp/thread300349.html
Комментарий в коде C++
как в С++ делать коментр?? в паскале так: { bla bla} а в С++ как???
Списки, динамическая память и указатели C++
Нужна помощь! Требуется написать функцию rearrangment( ), меняющую i-ю и j-ю строки текста. То бишь нужно создать однонаправленный список, в который заносится построчно текст какой-либо уже...
C++ Найти решение - на разные темы http://www.cyberforum.ru/cpp/thread298385.html
Доброго времени суток!!! Уважаемые форумчанины, требуется помощь в решении задач по С++. За 1,5 месяца не смог разобраться ни в одном компиляторе. У меня видимо руки не оттуда растут, или эти...
C++ После всякиго ли компилятора c++ будут гарантирвоано правильно исполняться код, соответствющий этим строкам? После всякиго ли компилятора c++ будут гарантирвоано правильно исполняться код, соответствующий этим: a=a; // Удвоение a*=a; // Возведение в квадрат строкам. 1. На сколько надёжно компилится... подробнее

Показать сообщение отдельно
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
21.05.2011, 12:22  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
pito211, placement new в твоём случае принципиально не отличается. Ибо что вызов new, что вызов malloc + new дадут по сути один и тот же результат. При этом на пару с realloc этот placement new всё равно работать толком не будет. В том смысле, что ничего нового не даст. malloc/realloc - интерфейсы для выделения plain-памяти, которая НЕ трактуется как массив объектов. Т.е. если ты вызвал realloc, то данные от объектов у тебя скопируются, но они скопируются как образ памяти, но не как объекты, потому что никаких операций присваивания или конструкторов вызываться не будет (хотя новые объекты как бы появились). Такая работа может послужить дополнительным источником ошибок
если я правильно понимаю действие реаллока, то в некоторых случаях он вернёт ссылку на новую область памяти(пустую наверно, раз консттрукторов копирования он не вызывает?), а в некоторых расширит существующую, если это возможно?

A pointer to the reallocated memory block, which may be either the same as the ptr argument or a new location.
The type of this pointer is void*, which can be cast to the desired type of data pointer in order to be dereferenceable.
If the function failed to allocate the requested block of memory, a NULL pointer is returned, and the memory block pointed to by argument ptr is left unchanged.
и если это так, то это значит же что в некоторых случаях копировать не придётся, а это ведь серьёзное увеличение производительности(если вдруг не придётся тыщу элементов копировать)?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru