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.
    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник




Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: