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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VitPon
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 29
#1

Vector, очистка памяти - C++

22.04.2013, 12:19. Просмотров 889. Ответов 4
Метки нет (Все метки)

У меня есть вектор, который состоит из объектов типа класс. После выполнения данного блока мои объекты удаляются(вызываются ихние деструкторы). Как мне избежать данной ситуации?
C++
1
2
3
4
5
6
7
8
9
10
11
12
void LoadBD(istream& file, char mbuf[], vector<FlatRequest> mflats)
{
    system("cls");
    for(unsigned int i=0; i<mflats.size(); i++)
        {
            mflats.at(i).Init(file);
            file.getline(mbuf, 256);
        }
    cout<<"База данных успешно загружена."<<endl;
    mflats.at(0).Show();//Проверял, есть ли тут вообще что-либо, оказалось, что все верно, объект выводится.
 
}
у меня дальше функция есть, которая выводит все данные объектов на экран, но так как там ничего нету - она лезет непонятно куда.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 12:19     Vector, очистка памяти
Посмотрите здесь:

Очистка контейнера vector - C++
Доброго времени суток господа программисты. У меня возникла дилемма. В общем, у меня есть вектор std::vector&lt;std::vector&lt;int&gt; &gt; grid;...

Очистка памяти - C++
Как правильно очистить память в массиве классов Вот код конструктора, выделяющего память, и деструктора. Выдает ошибку в самом конце...

Очистка памяти - ошибка - C++
Здравствуйте, друзья. Подскажите, пожалуйста, где ошибка: #include &lt;stdio.h&gt; int main() { int size = 5; int **array = new...

Очистка памяти массива (С++) - C++
Не получается очистить память массива. По моему коду, по завершении программы выдаётся ошибка &quot;попытка очистки памяти после записи её в...

Указатели и очистка памяти - C++
Возник интересный вопрос... class Test { int a; }; class Test1 : public Test { int b, c; }; int main() { Test1 *t = new Test1; ...

указатели и очистка памяти - C++
В отличии от java в с++ память по умолчанию нужно очищать самостоятельно. Понятно, что если память зарезервированная неким указателем...

Очистка памяти delete[]; - C++
Есть функция ввида: void loltest(int md3) { char* randChars; int cCount; if(md3 &lt;= 0) cCount = 13; ...

Ссылки и очистка памяти - C++
Здравствуйте! Если я создаю ссылку и присваиваю ей значение (константу или нет) должен я как и с указателями заботится об памяти? ...

Правильная очистка памяти - C++
Пытаюсь разобратся с работой с памятью в с++. Есть класс BigInteger содержащий в себе массив чисел int *arr. В конструкторе этот массив...

Очистка памяти. Бинарное дерево. - C++
Как очистить память если не удалось выделить её,очистить то что удлось выделить ,и как удалить память если удалось выделить, ...

Очистка динамической памяти очереди - C++
Доброго времени суток! Я вот думаю-думаю, но докумекать не могу. Я пишу очередь (основываюсь на логику и принцип очереди) так вот,...

Очистка памяти из под структуры - C++
Здравствуйте, имеется задача очистить память из под структуры, код программы struct Node { int data; }; void f() { Node*...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
22.04.2013, 12:27     Vector, очистка памяти #2
В функции создается локальная копия вектора mflats. При выходе из функции эта копия уничтожится. Если Вы хотите сохранить данные в векторе, даже после выхода из функции, то передавайте вектор как ссылку:
C++
1
void LoadBD(istream& file, char mbuf[], vector<FlatRequest> &mflats)
VitPon
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 29
22.04.2013, 12:59  [ТС]     Vector, очистка памяти #3
спасибо, помогло)
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
22.04.2013, 17:25     Vector, очистка памяти #4
Кстати почему просто не перегрузить оператор << и >> относительно вашего класса ?
VitPon
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 29
22.04.2013, 18:13  [ТС]     Vector, очистка памяти #5
Цитата Сообщение от Avazart Посмотреть сообщение
Кстати почему просто не перегрузить оператор << и >> относительно вашего класса ?
чтобы не было отдельной функции для инициализации данных? чтобы сразу через >> происходило иннициализирование?
Yandex
Объявления
22.04.2013, 18:13     Vector, очистка памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru