![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое создание строк
Skier © (2002-06-26 13:18:00)Господа, мне нужно динамически создавать строки
(не PChar, а именно String(!) )
Я делаю что-то вроде этого :
.......................
type
PString = ^String;
var
AStr := AllocMem(4);
AStr^ := "hello, world !"
FreeMem(AStr, 4);
.......................
Вроде бы всё работает, но что-то меня
терзают смутные сомненния : не происходит ли memory leak ?
И вообще как это всё лучше всего делать ?
:smile: (2002-06-26 13:49:00) [61]Не будет. Освободится только 4 байта указателя.
Skier (2002-06-26 13:44:00) [62]> panov
Проблема в следующем : будет ли освобождаться
память выделенная Delphi под "hello, world !" ?
Меня это очень интересует.
Игорь Шевченко (2002-06-26 13:42:00) [63]Skier © (26.06.02 13:33)
Не можете привести пример, а то непонятно...
По-моему, проще не мучиться со строками, а выделить память под текст, иметь на него указатель типа PChar...
panov (2002-06-26 13:37:00) [64]>Skier © (26.06.02 13:18)
FreeMem освобождает память. В чем проблема-то?
panov (2002-06-26 13:36:00) [65]>Kaban © (26.06.02 13:34)
По моему это уж лишнее
В общем случае - нет. -)
Например, для глобальных переменных...
Kaban (2002-06-26 13:36:00) [66]Бред
Kaban (2002-06-26 13:34:00) [67]По моему это уж лишнее
str := ""; //память освобождена
Skier (2002-06-26 13:33:00) [68]> Игорь Шевченко
> Anatoly Podgoretsky
Мне нужно программно создать указатель на строку и работать
с ней, а потом этот указатель прибить.
Но меня интересует убъётся ли строка hello, world ! ?
(в моём случае) станет ли кол-во сслылок на неё = 0, чтобы
Delphi снесла её из памяти ??
panov (2002-06-26 13:31:00) [69]str := "hello, world !";
...
str := ""; //память освобождена
Skier (2002-06-26 13:29:00) [70]> Kaban
Ну да... не строка создаётся, а указатель на неё родимую.
Но всё равно вроде работает, а вроде бы что-то тут не так...
Игорь Шевченко (2002-06-26 13:29:00) [71]А зачем? Строка же так создается динамически и, по сути, является указателем
Anatoly Podgoretsky (2002-06-26 13:27:00) [72]Зачем такое извращение, работа со строками и так происходит динамически и автоматически.
Kaban (2002-06-26 13:26:00) [73]че-то я не вижу где тут "динамически создаются строки"
и что вы вообще под этим подразумеваете