Нужна подпрограмма, которая по передаваемому ей параметру (любого типа) создаст в динамической памяти объект и вернет его.
Вот, набросал процедурку, но она не работает. Турбо не компилирует, а NVN не видит ошибки, но ничего не делает...
Procedure Obj (Var X; Var P: Pointer);
Begin
GetMem(P,SizeOf(X));
P^ := X;
End;
SizeOf(X) внутри процедуры попробуй распечатать, что будет?
Вот так - работает:
Procedure Obj (Var X; size: integer; Var P: Pointer);
Begin
GetMem(P, size);
move(X, P^, size);
End;
...
obj(something, sizeof(something), px);
Спасибо, все работает.
Только вот почему-то когда я пишу такую маленькую процедурку, размер переменной передается, а когда добавляю ее в другую, побольше, то нужно передавать и размер.