Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.09;
Скачать: CL | DM;

Вниз

не передается динамический массив в функцию   Найти похожие ветки 

 
renex ©   (2008-10-01 15:23) [0]

Не получается назначить размер массиву в функции,
функция объявлена как MyFunction(perem:integer;var MyArr:array of string):integer;
при вызове неизвестно сколько значений должен содержать в себе массив,
это узнается в теле функции в зависимости от параметра perem, количество узнается count_values, но при попытке вставить SetLength(MyArr,count_values) в тело функции коппилятор выдает "incompatible types"


 
Григорьев Антон ©   (2008-10-01 15:27) [1]

Это у вас не динамический массив получается, а открытый, т.е. такой параметр, куда можно подставить любой подходящий по типу массив статический или динамический. А раз там может оказаться статический массив, то и менять длину в общем случае нельзя. Чтобы параметр был не открытым, а динамическим массивом, надо заранее объявить нужный тип и использовать его:

type
 TStringDynArray = array of string;

MyFunction(perem:integer;var MyArr:TStringDynArray):integer;


 
Труп Васи Доброго ©   (2008-10-01 16:14) [2]

А указателями пользоваться тебе западло или как?


 
renex ©   (2008-10-01 16:28) [3]

Спасибо за ответы, заработало когда правильно объявил динамический массив
а что эффективнее и удобнее, указатели или дин. массивы???
скиньте пож-та ссылок где можно почитать про указатели


 
@!!ex ©   (2008-10-01 19:40) [4]

> [3] renex ©   (01.10.08 16:28)


> а что эффективнее и удобнее, указатели или дин. массивы?
> ??

var перед параметром уже говорит о том, что массив передан как указатель.
на [2] внимания не обращай в данном случае заявление не в тему.
Если есть возможность пользовать var вместо указателей, лучше пользуй var - легче с кодом разобраться будет.


 
Юрий Зотов ©   (2008-10-01 19:51) [5]

> [3] renex ©   (01.10.08 16:28)

> а что эффективнее и удобнее, указатели или дин. массивы?

Переменная или параметр типа "динамический массив" - это тоже указатель, даже и без var. Так что по эффективности - одно и то же, а по удобству - динамический массив.



Страницы: 1 вся ветка

Текущий архив: 2008.11.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
15-1221252916
RaMoNeZz
2008-09-13 00:55
2008.11.09
Помогите упростить код и проверить правильно ли написан он....


15-1221213934
Prohodil Mimo
2008-09-12 14:05
2008.11.09
Какой програмный код считается разным? Литература


2-1222673282
JohnKorsh
2008-09-29 11:28
2008.11.09
Вопрос по компонентеам, работающим с сетью.


2-1222876480
GrieVeR-13
2008-10-01 19:54
2008.11.09
Эмуляция клика мыши в не активном окне.


2-1222673215
<Evil>
2008-09-29 11:26
2008.11.09
Как экранировать одинарную кавычку?