CAllocate
 
Отводит (назначает) память для определённого количества элементов из свободного места и очищает содержимое.

Синтаксис

Declare Function CAllocate cdecl ( ByVal num_elements As Integer, ByVal size As Integer = 1 ) As Any Ptr

Использование

result = CAllocate( num_elements [, size ] )

Параметры

num_elements
Число элементов, для которых нужно отвести память.
size
Размер каждого элемента, в байтах.

Возвращаемое Значение

Если успешно, то возвращается адрес начала выделяемой памяти. Если безуспешно, то будет возвращён нулевой (пустой) (0) указатель.

Описание

CAllocate инициализирует выделенную память, заполняя её нулями. Следовательно CAllocate может быть также напрямую использована с String или Udt, содержащими строковую переменную (string), так как строковый дескриптор сначала ощищается (устанавливается на 0).

Пример

' Выделяем и инициализируем место в памяти для 10 элементов типа integer.
Dim p As Integer Ptr = CAllocate(10, SizeOf(Integer))

' Заполняем эту память целочисленными (integer) значениями.
For index As Integer = 0 To 9
    p[index] = (index + 1) * 10
Next

' Выводим на экран эти значения.
For index As Integer = 0 To 9
    Print p[index] ;
Next

' Освобождаем этот блок памяти.
Deallocate(p)

Результат:
 10 20 30 40 50 60 70 80 90 100

Различия платформ

  • Для данной процедуры безопасность потока не гарантированна.

Различия диалектов

  • Не доступна в диалекте -lang qb если только нет ссылки через alias __Callocate.

Отличия от QB

  • Новая в FreeBASIC

См. также