![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
последний раз такое делал лет 15назад
как исправить ?
при выделении памяти в контсрукторе каждый раз начало памяти один и тот же адресс, тоесть по логике надо чтобы деструктор вызвался один раз с максимальной длиной, с другой стороны malloc может каждый раз дать разные адреса тоесть деструктор нудно вызывать каждый раз, в нете искал ничего толкового не нашел , |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Ваш объект в таком виде как сейчас, нельзя копировать.
(а он копируется при помещении в вектор, и внутри вектора когда тот расширяется) Почему нельзя? Потому-что при удалении копии, происходит освобождение буфера delete[] buf; И новый объект, имеет указатель на память, которая уже удалена (освобождена) Предлагаю вам воспользоваться умным указателем, вместо char* buf; зы: а это вообще черте-что, зачем оно? Это не нужно |
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
в теории знаю а как это написать практически ?, лет 5 к С++ не притрагивался, потом взято тут http://blog.smartbear.com/c-plus-plus/c11-...nment-operator/ с помощью std:move такое решаеться ? каким образом? |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
можно и с move но с умными проще будет https://ideone.com/wTSxcA если я конечно правильно понял, что вы вообще пытались сделать |
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
вот это что такое ? array_deleter<char>()) что передаеться в темплат? у меня в дебаге обьект пустой , |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |