Здравствуйте, wallaby, Вы писали:
W>Не согласен. Иногда динамические массивы очень удобны. К тому исходный пример приводился для поиска ошибки, а не обсуждения архитектуры.
Я не против динамических массивов, я против их такого использования. В каком месте справки написано, что их надо создавать через New?
W>Кстати описанная проблема в равной степени относится к длинным строкам — их тоже надо инициализировать. Если строка — поле записи, и память под эту запись выделять через GetMem — ждите AV при первом обращении к этой строке. В отличие от GetMem процедура New всегда выполняет инициализацию нужных полей (а Dispose — их финализацию, что требуется чтобы не было утечки памяти). И похоже не все это знают.
На практике New совершенно не нужна, каких магических действий бы New не совершала.