Многомерные динамические массивы Delphi

программирование Delphi делфи

Здравствуйте!
При попытке очистить массив с помощью SetLength(m,0) иногда возникает ошибка (раз на раз не приходится). Код:

Type TArDiap = record
pStart,
pend:Int64;
end;

Type TPar = record
ArDiap: array of TArDiap;
Name:string;
end;

var m: array of TPar;

procedure DoIt;
begin
setlength(m,1);
setlength(m[0].ArDiap,1);
m[0].ArDiap[0].pStart:=777;

//чтото делаем еще

setlength(m[0].ArDiap,0); <-- тут иногда access violation
setlength(m,0);
end;

Структура на момент очистки заполнена верно

Примечание:
Вопрос решен. Проблема оказалась вот в чем: При сохранении в массив строки, сохранялись и символы окончания строки. В результате чего к концу работы с массивом сбивались указатели.
Ответы:
Скорее всего, проблема в >//чтото делаем ещё
без полного кода сложно что-то сказать


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.