![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 17.04.2012
Сообщений: 42
|
![]()
Добрый день господа. Столкнулся с таким вопросом и не знаю как лучше реализовать.
Суть такова. Есть матрица я пишу некую процедуру которая выполняет некоторые действия с ее ячейками. Нужно сделать чтобы в качестве входящего параметра в процедуру была матрица. чтото типа procedure run(входящая матрица); Как будет выглядеть обьявление процедуры где в качестве входящего параметра будет матрица? Вероятно поступить предложение сделать это посредством указателей procedure run(matrix ![]() но поскольку в делфи я работаю с указателями впервые было бы неплохо увидеть пример использования указателя matrix(в моем случае) в процедуре. спасибо |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
лучше всего, через свой тип данных:
Код:
Код:
через указатели тоже можно, но зачем чесать правое ухо пяткой левой ноги, если создатели языка/компилятора обеспечивают удобные, надёжные и мощные механизмы внутрипрограммного взаимодействия!) |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.04.2012
Сообщений: 42
|
![]()
спасибо. я с чего-то решил будто это можно реализовать в прямом смысле вопроса
|
![]() |
![]() |
![]() |
#4 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Все сказано верно, только будьте внимательны в следующем: всегда передавайте в параметры процедуры массивы большой размерности как var или const, или же out (если требуется только изменить массив в методе). Без указания ссылочных типов в параметрах метода данные копируются в его стек, а он варьируется от 16 кб до 1 мб по умолчанию. При переполнении стека получим AV. Иными словами, надо делать так:
Код:
Код:
Код:
Код:
P.S. Serge_Bliznykov, ответьте на вопрос: чем отличаются открытые массивы от динамических? Для себя интересно. Спасибо.
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 18.04.2012 в 22:22. |
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Если мне не изменяет память - понятие открытого массив применяется для описания параметров функции. Это еще с паскаля пошло.
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 17.04.2012
Сообщений: 42
|
![]() |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Матрица как параметр | miftayka | Visual C++ | 2 | 09.04.2012 20:19 |
подсчитать количество единиц входящий в текст | LILI26092009 | Помощь студентам | 1 | 07.11.2010 09:58 |
Входящий аудиопоток | FIPC | Win Api | 1 | 03.06.2010 10:10 |
Как увидеть програмно в DELPHI входящий звонок и узнать номер звонка ? | LiderServis | Общие вопросы Delphi | 3 | 20.01.2009 21:19 |
Входящий звонок на модем | _SERGEYX_ | Работа с сетью в Delphi | 2 | 25.09.2007 09:22 |