OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 18 Август, 2019 00:12

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: SDL (Simple DirectMedia Layer)
СообщениеДобавлено: Суббота, 01 Март, 2014 10:38 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2599
Откуда: Россия, Ярославль
Код:
VAR pointer: PPoint;
BEGIN
pointer:=SYSTEM.VAL(PPoint, SYSTEM.ADR(points^));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDL (Simple DirectMedia Layer)
СообщениеДобавлено: Суббота, 01 Март, 2014 12:11 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Спасибо, заработало!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDL (Simple DirectMedia Layer)
СообщениеДобавлено: Суббота, 01 Март, 2014 14:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9129
Откуда: Россия, Орёл
Попробуйте так:

Sdl2Win.RenderDrawLines(renderer(Renderer).r, SYSTEM.VAL(Sdl2Win.PPoint, S.ADR(points[0])), count)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDL (Simple DirectMedia Layer)
СообщениеДобавлено: Суббота, 01 Март, 2014 14:28 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9129
Откуда: Россия, Орёл
Оп, не заметил, что Пётр уже ответил ))
Но я обычно беру в таких случаях адрес от нулевого элемента... Как-то надёжнее )))

Насчёт варианта Петра:
- тут интересный языковый вопрос. POINTER TO ARRAY OF CHAR - это динамический массив неизвестного размера.
Какой тип является результатом ^ для указателя на динамический массив? Открытый массив?

Технически же - у дин. массива в начале лежит заголовок с размерами по всем измерениям.
Т.е. S.VAL(untagged_p_array, pArray) - даст указатель отнюдь не на данные...

А S.VAL(utagged_p_array, S.ADR(pArray^)), значит, т.к. Вы опробовали, даёт эффект, эквивалентный S.VAL(utagged_p_array, S.ADR(pArray[0]))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDL (Simple DirectMedia Layer)
СообщениеДобавлено: Суббота, 01 Март, 2014 14:54 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2599
Откуда: Россия, Ярославль
Я тут недавно ковырял, вроде, по косвенным данным стало понятно, что разыменованый указатель дает массив анонимного типа (ARRAY 41 OF CHAR например), то есть фактический массив получается статическим и вполне определенной длины.
Затем я сравнил размер типов, через SIZE: ARRAY 41 OF RECORD END и ARRAY 41 OF RECORD [untagged] END - размеры совпали.
Размер untagged и обычного рекорда совпал. Ну я и подумал, что надо просто создать указатель на этот разыменованный массив. А указатель уже известно как создать - записать в указательный тип адрес рекорда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDL (Simple DirectMedia Layer)
СообщениеДобавлено: Суббота, 01 Март, 2014 16:55 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9129
Откуда: Россия, Орёл
Я имею в виду статическую типизацию, с точки зрения компилятора!
Т.е., если разыменовываете POINTER TO ARRAY OF CHAR, то получиться тип ARRAY 41 OF CHAR никак не может!
Может получиться тип ARRAY OF CHAR - открытый массив...
И SIZE, по идее, не должен быть применим.

Вот если POINTER TO ARRAY 41 OF CHAR, то да, тогда будет анонимный тип массив фиксированного размера.


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

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB