Главная страница
    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.45 MB
Время: 0.038 c
2-1176948495
ярослав
2007-04-19 06:08
2007.05.13
проблема с перетаскиванием окна


4-1166135525
Альберт
2006-12-15 01:32
2007.05.13
Отправить данные на сервер


15-1176454768
Tonich
2007-04-13 12:59
2007.05.13
Есть ли такое ?


2-1176981626
lewka
2007-04-19 15:20
2007.05.13
Удаление строк в Access из собственного приложения


15-1176746665
Kolan
2007-04-16 22:04
2007.05.13
Какчал архив из 4 частей одна не докачалась&#133





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский