![]() |
|
Модераторы: bsa |
![]()
|
|
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
ZC1989,
ИванМ правильно заметил, ты не копируешь данные, ты копируешь указатели..после очистки памяти данные стираются, а указатели остаются, используй std::string, или скачай библиотеку для C++, там поменьше проблем будет. |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
||||
|
|||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
azesmcar, это лишний гемор, а нельзя что ли стереть всё? циклом или как угодно?
Добавлено через 3 минуты и 6 секунд bsa, по твоему примеру у меня получается наоборот, я хочу удалить x через y -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
ZC1989, как я понимаю, вы C++ и STL знаете более менее. Поэтому советую пользоваться "умными" указателями auto_ptr, а лучше бустовскими и забыть про кошмар с освобождением памяти. Я лично теперь только так и работаю.
|
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
ИванМ, я попробую это, но вот чисто раде интереса, почему я н могу освободить ту память, учитывая что я могу её вывести в каком угодно виде на экране, даже функция free даёт вылет программы...непонимаю....
Добавлено через 2 минуты и 28 секунд list<ms_Data> ::iterator i_arr; for(i_arr = arrDocs->begin(); i_arr != arrDocs->end(); i_arr++){ if((*i_arr)._type = mst_Folders) free((*i_arr).title); } arrDocs->clear(); -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
ZC1989, грубо говоря освободить память может только тот, кто ее выделял. Если вы ее не выделяли, то и освободить вы ее не можете. Это не точно, но вашем случае это так.
|
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
аа, ну тогда это более правдопободно...
-------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
это сново я...
переделал полностью списики. теперь очищается полностью всё что выделяется и как я думаю это не должно как то влиять на размер программы в памяти. но получается странный эффект: через _CrtMemDumpAllObjectsSince(&_ms); вывожу всю неочищенную память и при закрытии программы - выделенная память полностью очищена, с этим проблем нету. но когда я обновляю список, (в 1400 позиций) размер ехе всё равно ростёт! поставил вывод занятой памяти прямо после очистки массива и наблюдаю такую картину что при каждом обновлении остаются только 11 переменных (как и должно быть) - ничего лишнего не остаётся, но почему тогда прирост в памяти??? может быть это вызвано тем что проект Debug? -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |