Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
Кузнецов   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
1-1174306611
zdm
2007-03-19 15:16
2007.05.13
локальная сортировака DbGridEh for FireBird


15-1176448967
Calibr
2007-04-13 11:22
2007.05.13
С Delphi на C++


2-1177495186
cvg
2007-04-25 13:59
2007.05.13
эстетичное обращение к последнему элементу массива


2-1177415337
Настена
2007-04-24 15:48
2007.05.13
Элементы массива


15-1174904932
infom
2007-03-26 14:28
2007.05.13
Комплексное решение для разработчиков ПО





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский