Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Инициализация 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));


Наверх

Титульная страница Поиск, карта сайта Написать письмо