Описание:
Функция SizeOf возвращает размер в памяти (в байтах) переменной
Variable или типа Type.
Часто бывает полезно
узнать, сколько места занимают данные. Особенно при использовании стандартных
процедур вроде GetMem.
Для некоторых типов
всегда возвращается размер указателя, так как они и являются просто указателями
на данные, хранимые эти типом. Примером таких типом являются строки.
Для получения размера объекта используйте метод
InstanceSize.
Пример кода:
var
intNumber : Integer;
extNumber : Extended;
sentence : string;
begin
// Display the sizes of a number of data types
ShowMessageFmt(' SizeOf(Integer) = %d',[SizeOf(Integer)]);
ShowMessageFmt('SizeOf(intNumber) = %d',[SizeOf(intNumber)]);
ShowMessageFmt(' SizeOf(Extended) = %d',[SizeOf(Extended)]);
ShowMessageFmt('SizeOf(extNumber) = %d',[SizeOf(extNumber)]);
// String types and variables are pointers to the actual
strings
sentence := 'A long sentence, certainly longer than 4';
ShowMessageFmt(' SizeOf(string) = %d',[SizeOf(string)]);
ShowMessageFmt(' SizeOf(sentence) = %d',[SizeOf(sentence)]);
end;
Результат выполнения:
SizeOf(Integer) = 4
SizeOf(intNumber) = 4
SizeOf(Extended) = 10
SizeOf(extNumber) = 10
SizeOf(string) = 4
SizeOf(sentence) = 4
Пример кода:
type
TRecord = Record
name : string[10];
age
: Byte;
end;
var
recStorage : PChar;
begin
// Show the size of our record type
ShowMessageFmt(' SizeOf(TRecord) = %d',[SizeOf(TRecord)]);
// Allocate storage for ten of these records
GetMem(recStorage, 10 * SizeOf(TRecord));
end;