Форум: "Начинающим";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
ВнизИзменение длины динамического массива внутри процедуры. Найти похожие ветки
← →
***mikle*** (2009-01-05 12:40) [0]Сделал процедурку которая преобразует динамический массив, аля
PROCEDURE Change(mas:ARRAY OF AnotherType);
но при попытке изменения длины (SetLength) компилятор ругается. пол часа бился, потом решил сделать функцию и для этого объявил тип MasType=ARRAY OT AnotherType;
а когда начал переделывать процедуру и поменял тип входного массива на MasType - сразу скомпилировался!
Теперь оно работает, как изначально планировалось, но никак не пойду, в чём сначала была ошибка? ведь я пытался изменить длину динамического массива! да и потом делал то же самое, только обозвал по-другому. Может быть кто-нибудь сможет объяснить?
Заранее спасибо.
← →
Amoeba © (2009-01-05 12:49) [1]
> PROCEDURE Change(mas:ARRAY OF AnotherType);
Здесь массив в параметре процедуры был объявлен не как динамический, а как открытый. А это "две больших разницы".
> type MasType=ARRAY of AnotherType;
> PROCEDURE Change(mas: MasType);
А теперь имеем дело с динамическим массивом.
Читаем справку про dynamic arrays и про open arrays.
← →
Anatoly Podgoretsky © (2009-01-05 12:50) [2]> ***mikle*** (05.01.2009 12:40:00) [0]
В том, что это не динамический массив.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c