FillChar, процедура
Синтаксис
procedure FillChar(var Buffer; Count: Integer; const Fill);
Описание
Процедура FillChar заполняет переменную Count байтами, копируя аргумент Fill
необходимое число раз. Fill может быть константой порядкового типа размером
в Byte. FillChar не является настоящей процедурой.
Ошибки
Советы и приемы
- Заметьте, что Buffer не является указателем. Передавайте не адрес переменной,
а саму переменную. Если выделена динамическая память, не забудьте разыменовать
указатель при вызове FillChar.
- Если порядковое значение константы Fill выходит из диапазона типа Byte,
Delphi использует в качестве байта заполнения ее младший байт. Delphi не
генерирует ошибку даже в случае включенной проверки на переполнение.
- Чаще всего процедура FillChar применяется для заполнения Buffer, нулями.
Также можно использовать функцию SysUtiIs. AllocMem, которая вызывает GetMem
и затем FillChar для заполнения всей выделенной памяти нулями.
- При создании новой записи или массива, содержащего длинные строки, динамические
массивы, интерфейсы или значения типа Variant, необходимо проинициализировать
эти элементы. Процедура Initialize
обычно наилучшее средство для этого, однако она не инициализирует другие
элементы массива или записи. Вместо нее можно использовать процедуру FiliChar
для заполнения всей памяти нулями, что является корректным начальным значением
для строк, динамических массивов, интерфейсов и значений типа Variant. При
освобождении записи не забудьте вызывать процедуру Finalize
для освобождения памяти, связанной со строками, динамическими массивами,
интерфейсами и Variant.
- Если Count меньше нуля, FiliChar ничего не делает.
Пример
// Создание динамического массива из Count целых и инициализация
// их нулями
type TIntArray = array of Integer; function MakeZeroArray(Count: Integer): TIntArray;
begin SetLength(Result, Count); if Count > 0 then FillChar(Result[0], Count-SizeOf(Integer), 0);
end;
Смотрите также
Процедуры GetMem, Initialize,
New, функция StringOfChar.
Нет комментариев.
Оставить комментарий:
|
|