2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 14:16 


08/11/09
156
Код:
type T = record a: ^T end;

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

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

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


06/04/09
156
Воронеж
Возьмите любую книжку по Паскалю.

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

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 14:47 


08/11/09
156
Понял. Забыл, что
Код:
^T

и
Код:
type pT;
pT

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

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

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

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 18:26 
Аватара пользователя


20/02/10
4
Калининград
kuraga в сообщении #290966 писал(а):
Можно еще один глупый вопрос? А можно получить ссылку на обычную переменную?

@a

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 18:46 


08/11/09
156
Спасибо! Еще глупый вопрос :D Есть что-типа "указателя типа void"? Хочу хранить массив указателей на функции и массив указателей на записи разных типов. В цикле i-й функции передается указатель на i-ю запись. Это возможно?

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 20:38 
Заслуженный участник
Аватара пользователя


06/10/08
6422
kuraga в сообщении #291020 писал(а):
Спасибо! Еще глупый вопрос Есть что-типа "указателя типа void"? Хочу хранить массив указателей на функции и массив указателей на записи разных типов. В цикле i-й функции передается указатель на i-ю запись. Это возможно?

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

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 20:46 
Заслуженный участник


11/05/08
32166
Xaositect в сообщении #291060 писал(а):
В стандарте Паскаля такого нет.
В Дельфи есть тип Pointer.

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

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 20:55 


08/11/09
156
Спасибо. И еще: а как обнулить какой-то объект, то, что в СИ достигается циклом memset?

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


06/04/09
156
Воронеж
memset не цикл, а вполне нормальная функция.

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 21:32 
Заслуженный участник
Аватара пользователя


06/10/08
6422
ewert в сообщении #291064 писал(а):
Смотря в каком стандарте. В Борланде -- есть. Так что это вовсе не дельфийское изобретение.

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

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


08/11/09
156
Ну я перепутал, memset не в цикле вызывается, а сразу. Так как в Паскале?

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 22:21 
Заслуженный участник
Аватара пользователя


03/06/09
1497
kuraga в сообщении #291086 писал(а):
Так как в Паскале?

fillchar (см. гугл)

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение21.02.2010, 23:44 
Заслуженный участник


11/05/08
32166
meduza в сообщении #291093 писал(а):
kuraga в сообщении #291086 писал(а):
Так как в Паскале?

fillchar (см. гугл)

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

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

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение22.02.2010, 10:21 
Аватара пользователя


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

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

 Профиль  
                  
 
 Re: Pascal. Ссылка в записи на саму себя
Сообщение22.02.2010, 11:58 
Заслуженный участник


11/05/08
32166
Невозможно зачистить одним махом, например, список -- только пальчиками в цикле.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group