Показать сообщение отдельно
Старый 20.12.2009, 00:38   #7 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Цитата:
Без динамики написать получилось, но возникло несколько вопросов.
1)Если в функции массив входно-выходной параметр, как правильно его описать? в var?
2)Если использовать дополнительно одномерный динамический массив, выделять для него память нужно в самой функции?
И вообще при работе с динамическими массивами освобождать память под них достаточно один раз?
Чтобы передавать массив функции в качестве параметра, правильнее всего использовать передавать указатель на массив. В противном случае, программа при каждом вызове функции будет копировать в стек весь массив - либо стека не хватит, либо программа будет работать очень долго.

Про динамические переменные:
Здесь нужно соблюдать строгий порядок работы:
1) Выделяем память.
2) Работаем.
3) Освобождаем память.
Т. е. на каждую операцию new должна в процессе работы должна вызываться соответствующая dispose. (Количество вызовов new и dispose во время работы программы должно совпадать).

При форматировании текста программы удобно придерживаться таких правил:
1) begin и парный ему end должны быть напечатаны с одной горизонтальной позиции - тогда меньше придется искать синтаксических ошибок и проще разбирать код.
2) Даже если тело цикла или условного оператора состоит из одной команды, стоит поставить begin и end - лечит огромное количество ошибок.

И да, чтобы получить быстрый ответ на вопрос "компилятор там-то выдает ошибку", стоит приводить полный и оригинальный текст сообщения об ошибке.

Последний раз редактировалось Long Cat; 20.12.2009 в 00:42
Long Cat вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070