![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Инициализация record ов [D6, Win2k, WinXP]
smok_er © (2003-01-15 12:01:00)Мастера! Как при выделении памяти под рекорд сразу его проинициализировать, например, нулями?
А то какая-то каша, например 1,234345645767E10 и т.п.
smok_er (2003-01-15 13:10:00) [1]RWolf (15.01.03 12:39)
Извини, забыл сказать самое главное - огромнейшее спасибо!
smok_er (2003-01-15 13:09:00) [2]Мне это не нужно.
Прога нужна для просмотра отчетов и после построения последних сразу закрывается. А там уже дядя Билли все продумал :)
Хотя это некрасивый стиль программирования, но не хочется заниматься освобождением памяти
RWolf (2003-01-15 12:39:00) [3]освобождать память нужно будет так:
FreeMem(Rec);
RWolf (2003-01-15 12:37:00) [4]нет %)
Rec:=AllocMem(sizeof(TRec));
всё
smok_er (2003-01-15 12:37:00) [5]Сорри, ответчал на этот пост:
RWolf (15.01.03 12:14)
Rec:=AllocMem(sizeof(TRec));
выделяет память и заполняет ее нулями.
smok_er (2003-01-15 12:35:00) [6]Т.е. теперь надо делать так:
Rec: PRecord;
New(Rec);
Rec:=AllocMem(sizeof(TRec));
still (2003-01-15 12:22:00) [7]согласен. стормозил ...
REA (2003-01-15 12:19:00) [8]Аккуратнее с длинными строками - их в такие рикорды нельзя класть. Не инициализируются.
RWolf (2003-01-15 12:17:00) [9]still, ты обнулил указатель
правильно - FillChar(Rec^, sizeof(TRec), 0);
still (2003-01-15 12:15:00) [10]FillChar(Rec, sizeof(Rec), 0);
RWolf (2003-01-15 12:14:00) [11]Rec:=AllocMem(sizeof(TRec));
выделяет память и заполняет ее нулями.
smok_er (2003-01-15 12:11:00) [12]Спасибо, но...
Я сейчас делаю так:
Rec: PRecord;
New(Rec);
Rec^.a1 := 0;
Rec^.a2 := 0;
и т.д.
Вы можете слить наши примеры и показать, как правильно?
RWolf (2003-01-15 12:05:00) [13]p:=AllocMem(sizeof(TRec));