Их назначение динамичное управление памятью.
С помощью new можно выделить в процессе работы скрипта необходимое количество памяти, а с помощью delete ее удалить.
Пример статичного выделения
Цитата:
int var[25][50];
Пример динамичного выделения
CODE:
new int var[25][50];
В отличие от статичного выделения, в динамичном возможно влиять на размер массивов в процессе работы скрипта.
Пример
CODE:
//Для того что бы скрипт корректно работал надо указать не менее 26 на 51
new int var[formatsn(input("Введите размер строки"))][formatsn(input("Введите размер столбца"))];
var[25][50]=12345;
messagebox (var[25][50]);
new int var[formatsn(input("Введите размер строки"))][formatsn(input("Введите размер столбца"))];
var[25][50]=12345;
messagebox (var[25][50]);
Пример удаления ненужной памяти
CODE:
new int var[100][200];
var[25][50]=12345;
messagebox (var[25][50]);
delete var;
messagebox (var[25][50]);//Тут выведет ошибку так как переменная var удалена
var[25][50]=12345;
messagebox (var[25][50]);
delete var;
messagebox (var[25][50]);//Тут выведет ошибку так как переменная var удалена
После удаления можно заново выделить динамично память для переменной с тем же именем. К примеру для увеличения размерности массива. Но после удаления вся информация в том массиве будет удалена.
CODE:
new int var[32][55];
var[25][50]=12345;
messagebox (var[25][50]);
delete var;
new int var[300][500];
var[125][250]=67890;
messagebox (var[125][250]);
var[25][50]=12345;
messagebox (var[25][50]);
delete var;
new int var[300][500];
var[125][250]=67890;
messagebox (var[125][250]);
Повторное выделение памяти для переменной с одним именем возможно только после ее удаления.
Для изменения размера глобальной динамичной переменной в функции необходимо указать оператор global. Удаление и выделение глобальных переменных в функциях
CODE:
new int tCN[2][5];
tCN[1][2]=5;
messagebox (tCN[1][2]);
fff();
messagebox (tCN[1][2]);
function fff()
{
delete tCN;
global new int tCN[20][50];
tCN[1][2]=50;
}
tCN[1][2]=5;
messagebox (tCN[1][2]);
fff();
messagebox (tCN[1][2]);
function fff()
{
delete tCN;
global new int tCN[20][50];
tCN[1][2]=50;
}