Войти
ПрограммированиеФорумОбщее

[C++]Свои строки (2 стр)

Страницы: 1 2
#15
18:38, 27 фев. 2016

деструктор для ясности не привёл. Но проблема не в этом.

Имею аналогичный код (или мне так кажется), и сразу после вставки в вектор, у его элемента член p свои элементы по-прежнему имеет (к элементу массива указателей можно обратиться), однако его элементы уже ни на что не указывают (к элементу элемента массива указателей обратиться уже нельзя). Аналогично и с локальной переменной p. В чём может быть проблема?


#16
19:19, 27 фев. 2016

static_cast
> деструктор для ясности не привёл. Но проблема не в этом.
проблема в этом, наверно класс SomeClass у тебя имеет деструктор который удаляет свои массивы, т.к. в процессе создания нового элемента в векторе создается несколько временных объектов то они потом удаляются, и удаляют массивы, а т.к. ты копируешь эти массивы только копированием указателя то и у конечного объекта массивы уже удалены

#17
19:33, 27 фев. 2016

ashujon
Всё так, проблема именно в этом. Я как обычно себя обманул :)

Но как тогда лучше освобождать память? Или лучше по-человечески всё скопировать и не париться???

#18
19:34, 27 фев. 2016

static_cast
реализуй конструктор
SomeClass(SomeClass&& t);
в котором значения указателей меняй местами

#19
19:37, 27 фев. 2016

ashujon
правые ссылки :/

я в таком просто ноль.

Спасибо за помощь!

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.