Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
6-1194968418
artkil
2007-11-13 18:40
2008.11.09
Прокси


2-1222780898
vegarulez
2008-09-30 17:21
2008.11.09
Select * where date BETWEEN date1 and date2 from БД ACCESS


2-1222684547
zdm
2008-09-29 14:35
2008.11.09
Перевод Ф.И.О. в верхний регистр


15-1221319545
Городской Шаман
2008-09-13 19:25
2008.11.09
Starforce это троян?


2-1222682642
Vlad Oshin
2008-09-29 14:04
2008.11.09
PageControl и 2 tabsheet. Дизайн





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский