Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
ВнизКак передать функции управление динамическим массивом? Найти похожие ветки
← →
Vopros01 (2003-04-03 09:42) [0]Подскажите, пожалуйста, как в функции изменять размерность динамического массива, переданного в качестве параметра.
Этот массив будет возвращаемым параметром.
← →
Anatoly Podgoretsky (2003-04-03 09:47) [1]SetLength
← →
Skier (2003-04-03 09:48) [2]>Vopros01
1) модификатор var у формального параметра
2) SetLength(...)
← →
vopros01 (2003-04-03 10:37) [3]Извините, неправильно поставил вопрос.
Пример:
var
SpisSearch: array of Integer; // список найденного
CountSearch: Word; // количество найденного
begin
Search(CountSearch, SpisSearch);
// Далее обработка полученного списка
end;
Процедура Search должна мне вернуть сформированные SpisSearch и CountSearch
Procedure Search(Spis: array of Integer; Count: Word);
begin
// вычисление количества элементов
...
// назначить размерность динамического массива
SetLength(Spis, Count);
// присвоить значения элементам массива
...
end;
Процедура Search лежит в другом модуле (если это имеет значение)
Так вот, такая схема не работает! Компилятор выдает ошибку на строке
SetLength(Spis, Count);
Help!
← →
AlexSV (2003-04-03 10:49) [4]
> vopros01
> Так вот, такая схема не работает
А что при этом говорит?
ИМХО
Сделать объявление типа
type TIntArray: array of Integer;
а потом использовать:
var
SpisSearch: TIntArray;
...
Procedure Search(Spis: TIntArray; Count: Word);
← →
vopros01 (2003-04-03 10:49) [5]Help!
← →
Skier (2003-04-03 10:51) [6]>vopros01
1) type TIntArray: array of Integer;
2) Procedure Search(var Spis: TIntArray; var Count: Word);
(если я правильно понял...)
← →
AlexSV (2003-04-03 10:54) [7]
> Skier ©
Списываем? ;-)))
← →
vopros01 (2003-04-03 10:54) [8]> Сделать объявление типа
> type TIntArray: array of Integer;
AlexSV, поясните где сделать? В модуле с вызываемой процедурой или в вызывающей?
← →
Skier (2003-04-03 10:56) [9]>AlexSV
Ну...я бы сказал так : "заимствуем разумные вещи"
И потом...надо вовремя оформлять copyright. :)))
← →
AlexSV (2003-04-03 10:57) [10]Объявление типа делаем в модуле, где находится процедура разделе interface
← →
vopros01 (2003-04-03 11:20) [11]Спасибо. Буду пробовать.
Блин! У меня сейчас рухнул комп. Выдал ошибку записи на винт.
После Reset винт не был обнаружен! Только после полного выключения компа я смог облегченно выдохнуть. Извиняюсь за отступление...:)
← →
vopros01 (2003-04-03 12:21) [12]Всем спасибо! Работает! (пару дней бился, пытаясь врубиться самостоятельно)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c