Добрый день.
Как в CDS осуществить проверку указателя на Null?
Вид для печати
Добрый день.
Как в CDS осуществить проверку указателя на Null?
Проверяйте равенство указателя с нулем.
Вообще-то я так никогда не делаю, не знаю где это может понадобиться. :)
plist ->(pnext->)->(pnext->)->(pnext=nil)
простейший односвязный список из 3х объектов.
PS
Прогон неких фб из списка
обмен/архивация/события/...Код:pcurrent := plist;
while pcurrent <> nil do
pcurrent^(pnext => pcurrent);
end_while
В данном случае - искусственный т.к. является принудительно устанавливаемым при инициализации объекта в выделенном куске памяти.
Но вот при выделении самого участка памяти для объекта (из кучи) - может вернутся и случайный что будет является всего лишь признаком невозможности расширении списка а не перезагрузки ПЛК.
Любой проект является как бы (С) а возможные области применения я показал. Именно там я их и применяю.
Например архивация.
Объекты генерят события в динамический список.
При ненаступлении некоторых критических событий часть событий самоуничтожается (чтоб не плодить избыточную инфу)
Архиватор формирует из нужных событий буфер
Буфер при превышении 512 байт сливает окно (512 байт) в архив флеша
Рез-т : Имеем архив важных событий с подробной ситуацией перед наступлением аварий.