new~

Динамическое выделение памяти и присвоение ссылки.

Синтаксис:

p = new~<тип данных>;

Аргументы:

Имя Тип данных Описание
тип данных Название типа данных

Описание:

Динамическое выделение памяти и присвоение ссылки. Выделенная память должна быть освобождена при помощи функции dispose.

Результат:

Имя Тип данных Описание
p complex Происходит присвоение ссылки и выделение памяти. Интерпретируется скриптовым языком, как комплексная переменная, но при этом само отображаемое значение возвращаемой переменной не имеет смысла.

Пример 1:

p = new~double; //Выделение памяти
~double(p) = 100; //Присвоение    
y = ~double(p); //доступ по ссылке
dispose(p); //Освобождение памяти

В процессе выполнения примера по ссылке p на переменную типа double выделяется память при помощи функции new~. При помощи функции ~ происходит доступ по ссылке к переменной и приравнивание ей значения 100. Переменной y присваивается значение 100 по ссылке p. Перед завершение примера происходит освобождение памяти при помощи функции dispose.

Пример 2:

initialization

//В этом массиве мы будем хранить указатели на матрицы, он должен быть комплексного типа
var ptrs_array: carray;

//Создание
ptrs_array = 100#0; 
for(i=1,100) begin
//Вот так мы выделяем память
ptrs_array[i]=new~matrix;
//Присваиваем значение матрицы
~matrix(ptrs_array[i])=[[1,2],[3,1]];
end;

//Чтение - тут мы суммируем детерминанты матриц
summ = 0;
for(i=1,100) begin
dd = det(~matrix(ptrs_array[i]));
summ = summ + dd;
end;

//Уничтожение объектов после того, как мы закончили их использование
for(i=1,100) begin
dispose(ptrs_array[i]);
end;

end;

Пример показывает использование массива указателей на 100 матриц и последующее обращение к каждой из них.

Дополнительные материалы

Нет.