Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

Передача record по ссылке.   Найти похожие ветки 

 
brhrbr   (2007-08-12 11:25) [0]

 TMyRec = record
   W1: Word;
   B1: Byte;
 end;
 PMyRec = ^TMyRec;

function MyTest1(s: string): PMyRec;
var
 Tmp: TMyRec;
begin
 Tmp.W1 := StrToInt(Copy(s, 1, 1));
 Tmp.B1 := StrToInt(Copy(s, 2, 1));
 Result := @Tmp;
end;

function MyTest2(s: string): PMyRec;
begin
 New(Result);
 Result.W1 := StrToInt(Copy(s, 1, 1));
 Result.B1 := StrToInt(Copy(s, 2, 1));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(InttoStr(MyTest?("12")^.B1));
end;


Что нужно использовать MyTest1 или MyTest2?


 
Плохиш ©   (2007-08-12 11:41) [1]

MyTest2.
Из MyTest1 возвращается недействительная ссылка.


 
Юрий Зотов ©   (2007-08-12 12:01) [2]

> brhrbr   (12.08.07 11:25)

После выхода из MyTest1 ее локальные переменные перестают существовать и адрес Tmp оказывается битым.



Страницы: 1 вся ветка

Текущий архив: 2007.09.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
4-1173645922
Анонимщик1
2007-03-11 23:45
2007.09.02
WaitForMultipleObject, Event, ReadDirectoryChangesW, AV


15-1186225189
foreverDelphi
2007-08-04 14:59
2007.09.02
кто хочет из гуру помочь новичку


15-1186067656
Kenifer
2007-08-02 19:14
2007.09.02
Как инжектирывать свой процесс в чужой процесс?


15-1186415763
SkySpeed
2007-08-06 19:56
2007.09.02
Какую посоветуете программу для восстановления удалённых файлов?


2-1186488239
elserpiente
2007-08-07 16:03
2007.09.02
список полей таблицы