Динамическое выделение памяти и присвоение ссылки.
new~<тип данных>;
Динамическое выделение памяти и присвоение ссылки. Выделенная память должна быть освобождена при помощи функции dispose.
p = new~double; //Выделение памяти ~double(p) = 100; //Присвоение y = ~double(p); //доступ по ссылке dispose(p); //Освобождение памяти
В процессе выполнения примера по ссылке p на переменную типа double выделяется память при помощи функции new~. При помощи функции ~ происходит доступ по ссылке к переменной и приравнивание ей значения 1000. Переменной y присваивается значение 1000 по ссылке p. Перед завершение примера происходит освобождение памяти при помощи функции dispose.
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 матриц и последующее обращение к каждой из них.