Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

String и утечка памяти   Найти похожие ветки 

 
danver   (2004-05-09 20:16) [0]

насколько я знаю, у строки типа String есть счетчик ссылок
У меня структура с кучей строк, надо их все обнулить

А в этом коде не будет утечки памяти?

type
 TMyRec = record
   str1: String;
   str2: String;
   str3: String;
   n:    Integer;
   b:    Boolean;
 end;

var
 x: TMyRec;

procedure proc1;
begin
 x.str1 := "1234567890";
 x.str2 := "1234567890";
 x.str3 := "1234567890";

 ZeroMemory(@x, sizeof(x));
end;


 
pasha_golub ©   (2004-05-09 20:19) [1]

Нужно знать директиву компилятора {$H+/-}

В первом случае, имеем string=shortstring, иначе имеем string=адрес нулевого символа. Отсюда и будем плясать. Как у вас?


 
danver   (2004-05-09 20:25) [2]

Я про AnsiString(по дефолту ведь они?)


 
pasha_golub ©   (2004-05-09 20:39) [3]

По дефолту имеем указатели или PChar, что в принципе одно и тоже


 
Romkin ©   (2004-05-09 20:41) [4]

Перевожу: утечка памяти точно будет, причем в любом случае %)


 
danver   (2004-05-09 20:46) [5]

Че все-таки будет ? :(

я так и думал

я представляю так:
есть длина строки, есть указатель и есть кусок памяти, в кот. строка - это я про AnsiString

при обнулении структуры, стираются длина и указатель, строка остается
а система эту память как видит? как занятую?


 
Бином Ньютоныч   (2004-05-09 20:49) [6]

Перед ZeroMemory вызывай Finalize(x)


 
danver   (2004-05-09 20:53) [7]

А после Finalize(x) заного память не надо выделять?

можно опять?
x.str1 := "1234567890";


 
Jack128 ©   (2004-05-09 21:03) [8]


> А после Finalize(x) заного память не надо вынеделять?
нет, память под string автоматически выделяется


 
danver   (2004-05-09 21:09) [9]

OK, спасиб всем, все понял
надо было бы выделять заного, если бы я делал FreeMem или еще что
а я структуру обнуляю

p.s.(offtopic): ну нифига себе салют, окна тресутся


 
danver   (2004-05-09 21:14) [10]

И еще:
а может ZeroMemory и не нужно тогда или нужно, чтобы обнулить числовые типы?



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
1-1083916212
V-Isa
2004-05-07 11:50
2004.05.23
Проблеиа с сохранением JPEG


1-1083923137
Erik
2004-05-07 13:45
2004.05.23
Динамическое определение типа?


14-1083477640
Ig
2004-05-02 10:00
2004.05.23
Вопрос по компонентам, точнее по созданию редактора свойств.


1-1083760199
Goida
2004-05-05 16:29
2004.05.23
Когда в Delphi появится....


1-1083764799
Rusty
2004-05-05 17:46
2004.05.23
Открыто ли в приложении хотя бы одно окно модально?