Новые форумы для: пользователей, администраторов, математиков и филологов.
0
1

Есть программа, состоящая из записи из трех целых переменных. Нужно ввести с клавиатуры элементы записи и вывести на монитор адрес второго элемента и адрес записи. tp ругается на @s.c в коде ниже. Пишет:

Cannot Read of Write variables of this type

В чем ошибка?

TYPE structure = record
   a : integer;
   b : integer;
   c : integer;
end;

var S : structure;

begin
with S do begin
   writeln;
   write('Введите элемент записи a: ');
   read(a);
   write('Введите элемент записи b: ');
   read(b);
   write('Введите элемент записи c: ');
   read(c);
end;

   writeln;
   write('Запись S состоит из: ');
   writeln; write('a = ', s.a);
   writeln; write('b = ', s.b);
   writeln; write('c = ', s.c);

   writeln; write('Адрес второго элемента записи: ', @s.c);
   writeln; write('Адрес записи: ', @s);

end.

задан 21 Фев 15:36

Rendez%20Vouz's gravatar image

Rendez Vouz
415
100% принятых

изменен 22 Фев 19:36

Angry%20Bird's gravatar image

Angry Bird
609310

1

В паскале есть более родной метод взятия адреса сущности (переменной, функции) - это функция addr.

writeln; write('Адрес второго элемента записи: ', ofs(s.c));
writeln; write('Адрес записи: ', ofs(s));

upd. нужно просто правильно попросить:) А можно ещё и так word(@s.c) но если компилятор 16 битный, то там нужно будет ещё правильно адрес выделить

ссылка

отвечен 21 Фев 15:54

KoVadim's gravatar image

KoVadim
6.1k5

изменен 21 Фев 17:25

Этот вариант тоже не работает.

(21 Фев 16:01) Rendez Vouz
0

Лучше сделать приведение типов к longint:

   writeln; write('Адрес второго элемента записи: ', longint(@s.c));
   writeln; write('Адрес записи: ', longint(@s));
ссылка

отвечен 22 Фев 4:51

Rendez%20Vouz's gravatar image

Rendez Vouz
415

изменен 22 Фев 4:55

Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

ХэшКод - это совместно редактируемый форум вопросов и ответов для начинающих и опытных программистов.

Присоединяйтесь!

отмечен:

×404
×115

задан
21 Фев 15:36

показан
92 раза

обновлен
22 Фев 19:36

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии