bohdant писал(а):
Цитата:
При выделении памяти под структуру, содержащую указатели, гарантируется, что все указатели будут = NIL.
А где это написано? Просто интересно.
BlackBox - Help - Language Reference - 6.4 Pointer Types: "All fields or elements of a newly allocated record or array are cleared, which implies that all embedded pointers and procedure variables are initialized to NIL."
XDS Help - "GENPTRINIT": "If the option is set ON, the compiler generates code for initialization of all local pointers, including variables, record fields and array elements. Values of all non-pointer record fields and array elements are undefined.
The option is ON by default."
См. также "The Oakwood Guidelines for Oberon-2 Compiler Developers" - "5.8 Initialisation of Pointers". Я уверен, что как XDS, так и BlackBox этим требованиям соответствуют.
В сообщении о языке "The Programming Language Oberon-2" есть приложение "D5. Run Time Data Structures", где описана возможная реализация дескриптора типа. Там явно перечислены поля записи, содержащие указатели, так что эта информация может быть доступна в процедуре NEW и без полной очистки памяти.
Без инициализации указателей о какой надёжности можно вести речь?