Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Нужно создать указатель на объект

Автор: spill 13.05.2007 17:10

Нужна подпрограмма, которая по передаваемому ей параметру (любого типа) создаст в динамической памяти объект и вернет его.
Вот, набросал процедурку, но она не работает. Турбо не компилирует, а NVN не видит ошибки, но ничего не делает...

Procedure Obj (Var X; Var P: Pointer);
Begin
GetMem(P,SizeOf(X));
P^ := X;
End;


Помогите, подскажите, в чем дело?

Автор: volvo 13.05.2007 17:18

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);



Автор: spill 14.05.2007 22:27

Спасибо, все работает.
Только вот почему-то когда я пишу такую маленькую процедурку, размер переменной передается, а когда добавляю ее в другую, побольше, то нужно передавать и размер.