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

Вниз

Указатель   Найти похожие ветки 

 
Кузнецов   (2007-04-21 18:39) [0]

Здравствуйте, пишу программу наткнулся на одну неприятность.

Упрощенно это выглядит так:

type TType = record
 i : integer;
 r : real;
end;

var a, b, c : TType;

procedure proc(s : string);
var p : ^TType;
begin
 p^ := a;
 (p^).r := StrToFloat(s); //ERROR
end;


Подразумевается, что тип TType есть большая структура, которая содержит ко всему прочему массивы... в помеченной строке ошибка, а работать с указателями в моем случае - милое дело.
Не подскажете в чем дело/?
Спасибо.


 
Kedge ©   (2007-04-21 18:59) [1]

А куда указывает p^ в этой строке ?
p^ := a;


 
oxffff ©   (2007-04-21 19:38) [2]

Наверно p:=@a;


 
Loginov Dmitry ©   (2007-04-21 20:29) [3]

> Наверно p:=@a;


Не обязательно. Возможно прием p^ := a; автор хотит использовать для инициализации полей p.

2Автор: пропробуй так:

New(p);
p^ := a;
p.r := StrToFloat(s);
// Дальше что-то должно делаться с p, не просто так же все это
Dispose(p);


 
oxffff ©   (2007-04-21 21:40) [4]


> Loginov Dmitry ©   (21.04.07 20:29) [3]
> > Наверно p:=@a;
>
>
> Не обязательно. Возможно прием p^ := a; автор хотит использовать
> для инициализации полей p.
>
> 2Автор: пропробуй так:
>
> New(p);
> p^ := a;
> p.r := StrToFloat(s);
> // Дальше что-то должно делаться с p, не просто так же все
> это
> Dispose(p);


Не обязательно. :)

Это быстрее.

var LocalVar:TType;
    p:^TType;
begin
LocalVar:=a;
LocalVar.r:=StrToFloat(s);
p:=@LocalVar;
// Далee все что угодно
nd;


 
jack128 ©   (2007-04-22 01:19) [5]

oxffff ©   (21.04.07 21:40) [4]

Это быстрее.

var LocalVar:TType;
   p:^TType;


Одно не понятно,  нафиг здесь вообще указатели?


 
oxffff ©   (2007-04-22 10:07) [6]


> Одно не понятно,  нафиг здесь вообще указатели?


Так ведь просят же. :)


 
Desdechado ©   (2007-04-24 11:23) [7]

> тип TType есть большая структура, которая содержит ко всему
> прочему массивы
Чего-то в упор не вижу никаких массивов.



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

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

Наверх




Память: 0.48 MB
Время: 0.054 c
15-1176651455
nnn1
2007-04-15 19:37
2007.05.13
GetLowerBound / GetUpperBound из .NET


2-1177486533
Dimon777
2007-04-25 11:35
2007.05.13
Как закрыть при выходе из одного приложения другое?


15-1176604452
GeLLeR
2007-04-15 06:34
2007.05.13
Вопрос про одну dll-ку с сайта torry.net


2-1176975599
AK47
2007-04-19 13:39
2007.05.13
Есть 2 ADOQuery , 1 работает а вот второй нет


15-1176356700
StriderMan
2007-04-12 09:45
2007.05.13
Бытовые роботы