2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 14:16 
Код:
type T = record a: ^T end;

Цитата:
Error 19: Undefined type in pointer definition (T)

Это можно обойти?

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 14:30 
Возьмите любую книжку по Паскалю.

Код:
type
PRecord1 = ^Record1;
Record1 = record
   link:PRecord1;
end;

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 14:47 
Понял. Забыл, что
Код:
^T

и
Код:
type pT;
pT

- не одно и то же.

-- Вс фев 21, 2010 15:07:27 --

Можно еще один глупый вопрос? А можно получить ссылку на обычную переменную?

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 18:26 
Аватара пользователя
kuraga в сообщении #290966 писал(а):
Можно еще один глупый вопрос? А можно получить ссылку на обычную переменную?

@a

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 18:46 
Спасибо! Еще глупый вопрос :D Есть что-типа "указателя типа void"? Хочу хранить массив указателей на функции и массив указателей на записи разных типов. В цикле i-й функции передается указатель на i-ю запись. Это возможно?

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 20:38 
Аватара пользователя
kuraga в сообщении #291020 писал(а):
Спасибо! Еще глупый вопрос Есть что-типа "указателя типа void"? Хочу хранить массив указателей на функции и массив указателей на записи разных типов. В цикле i-й функции передается указатель на i-ю запись. Это возможно?

В стандарте Паскаля такого нет.
В Дельфи есть тип Pointer.

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 20:46 
Xaositect в сообщении #291060 писал(а):
В стандарте Паскаля такого нет.
В Дельфи есть тип Pointer.

Смотря в каком стандарте. В Борланде -- есть. Так что это вовсе не дельфийское изобретение.

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 20:55 
Спасибо. И еще: а как обнулить какой-то объект, то, что в СИ достигается циклом memset?

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 21:15 
memset не цикл, а вполне нормальная функция.

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 21:32 
Аватара пользователя
ewert в сообщении #291064 писал(а):
Смотря в каком стандарте. В Борланде -- есть. Так что это вовсе не дельфийское изобретение.

Ну, я имел в виду Pascal programming language report.

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 21:50 
Ну я перепутал, memset не в цикле вызывается, а сразу. Так как в Паскале?

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 22:21 
Аватара пользователя
kuraga в сообщении #291086 писал(а):
Так как в Паскале?

fillchar (см. гугл)

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 23:44 
meduza в сообщении #291093 писал(а):
kuraga в сообщении #291086 писал(а):
Так как в Паскале?

fillchar (см. гугл)

Очень устойчивая конструкция:
Код:
FillChar(A[i], size, #0)
(или типа). Заполняет память, начиная с адреса i-того элемента A, соотв.к-вом символьных нулевых байтов. И именно важно (для отладки), что символьных, а не каких других (формально-то и байтовых можно): ежели невзначай два последних аргумента перепутать -- немедленно выдаётся сообщение о несоответствии типов. Очень полезная штука в порядке дуракоустойчивости. Вот, в частности, и для меня это полезно, и я никогда не забываю ставить в таких случаях решётку.

Особо надёжный (и наиболее практически сушественный) вариант:
Код:
FillChar(A, SizeOf(A), #0)
Гарантированно и без глюков зачищает память, отведённую под конкретно эту переменную. (Но -- статическую, ессно; с динамическими такие штучки, естественно, не пройдут.)

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение22.02.2010, 10:21 
Аватара пользователя
ewert в сообщении #291117 писал(а):
Код:
FillChar(A, SizeOf(A), #0)
Гарантированно и без глюков зачищает память, отведённую под конкретно эту переменную. (Но -- статическую, ессно; с динамическими такие штучки, естественно, не пройдут.)

Почему не пройдут?

 
 
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение22.02.2010, 11:58 
Невозможно зачистить одним махом, например, список -- только пальчиками в цикле.

 
 
 [ Сообщений: 19 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group