|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.09.2020, 13:08 | #1 |
Пользователь
Регистрация: 07.10.2010
Сообщений: 47
|
проблема памяти
Дорогие формучани, я понимаю то вопрос глупый и все же
есть условная функция Код:
добавление после строки присвоение данных результату Код:
так вот вопрос что не так я делаю? или как очистить переменную? Последний раз редактировалось munhauz; 25.09.2020 в 13:11. |
25.09.2020, 13:41 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Объект возращается функцией по ссылке, потому удалять этот объект внутри функции будет некорректно. Корректно будет удалить объект в точки вызова после того, когда он станет не нужен.
E-Mail: arigato.freelance@gmail.com
|
25.09.2020, 13:55 | #3 | |
Пользователь
Регистрация: 07.10.2010
Сообщений: 47
|
Цитата:
1 есть процедура внутри которй я обращаюсь к данной функуии скажем Код:
Код:
или я что-то не понимаю? просо написано вроде так, но обнуления нет.. память занимаеться , каждый раз при создании в функции переменной прога отбираеть кусок пямяти под нее , но потом память не чиститься. |
|
25.09.2020, 14:23 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
программа — запись алгоритма на языке понятном транслятору
|
26.09.2020, 18:01 | #5 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
munhauz, у вас дважды делается stl := TStringList.Create;
Оставьте или в вызываемой процедуре, или в вызывающей. Раз освобождается память в вызывающей, то логично и создание объекта делать там. E-Mail: arigato.freelance@gmail.com
|
30.09.2020, 09:40 | #6 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
ну и запутано же вы объясняете....Капец....... Будьте проще.
надо так Код:
Последний раз редактировалось BLACK_RAIN; 30.09.2020 в 09:47. |
30.09.2020, 10:29 | #7 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
РЕКОМЕНДУЕТСЯ выделение и освобождение памяти делать на одном уровне.( в одной процедуре, одном объекте) таким образом при написании (и отладке)легче отследить потери. Код:
видимо остальное было убрано с целью минимизации примера.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 30.09.2020 в 10:33. |
|
30.09.2020, 13:23 | #8 |
Пользователь
Регистрация: 07.10.2010
Сообщений: 47
|
Комрады, вы не в ту степь ушли
пофигу что делается в 2 листами внутри процедуры важно следующее: есть 2 листа с которыми нужно сделать работу, результатом которой служит 3 лист и данные этого 3 листа нужно вернуть. но проблема в том что если скажем эту функцию вызвать 10 000 раз то она скушает много памяти. использовать глобальную переменную не выход и как эту память почистить я не знаю |
30.09.2020, 13:44 | #9 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
E-Mail: arigato.freelance@gmail.com
|
30.09.2020, 13:53 | #10 | |
Пользователь
Регистрация: 07.10.2010
Сообщений: 47
|
не работает что ответили
Код:
Код:
текст типа Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема с выделением памяти (Си) | _BYTE | Помощь студентам | 0 | 19.04.2014 16:22 |
Проблема с утечкой памяти | mr_cipher | C# (си шарп) | 10 | 28.08.2012 14:18 |
Проблема с переполнением памяти | maxeebon | Общие вопросы Delphi | 4 | 19.08.2011 22:09 |
Проблема с освобождением памяти | Vyachek2010 | Общие вопросы Delphi | 15 | 08.02.2011 17:05 |
Проблема с виделением памяти! | FreTFuL | Общие вопросы C/C++ | 1 | 07.05.2010 20:23 |