![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
![]()
есть динамический массив:
mas: array of byte; есть процедура: procedure A(m: array of byte); {здесь m - открытый массив} var i, j: smallint; begin i:=High(m); {индекс последнего элемента массива m} j:=Length(m); {длина массива m} end; индексация открытых массивов идет с 0 также как и в динамических. Для того чтобы передать этой процедуре динамический массив его в начале естественно надо создать (SetLength(mas,10) ![]()
ICQ: 593-013-807
|
![]() |
![]() |
![]() |
#13 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
![]()
А массив обязательно должен быть array of тип, или можно объявить и передать в качестве параметра, массив фиксированной длины?
|
![]() |
![]() |
![]() |
#14 | |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
![]() Цитата:
procedure A(m: array [0..10] of byte); ![]() соответственно массив который будет передаваться как фактический параметр должен быть описан также: var mas: array [0..10] of byte; ![]()
ICQ: 593-013-807
|
|
![]() |
![]() |
![]() |
#15 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
![]()
Задать массив, как параметр процедуры/функции, это я умею. Меня интересует: то как можно передать процедуре массив любой длины, и чтобы она сумела получить доступ к любому элементу этого массива.
|
![]() |
![]() |
![]() |
#16 | |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
![]() Цитата:
for i:=0 to High(m) do m[i]:=0; или обратиться к любому из них. Главное что ты знаешь границы массива (от 0 до High(m))!!! функция Length возвращает количество элементов массива. В данном примере она вернет 10.
ICQ: 593-013-807
|
|
![]() |
![]() |
![]() |
#17 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
![]()
И что такой процедуре будет "все равно" какой массив ей передан в качестве параметра, динамический или фиксированной длины? Лично я в этом сомневаюсь.
Последний раз редактировалось Miha85193; 19.07.2010 в 03:11. |
![]() |
![]() |
![]() |
#18 | |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
![]() Цитата:
![]()
ICQ: 593-013-807
|
|
![]() |
![]() |
![]() |
#19 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
![]()
Да действительно, проверил все работает. Вот только жаль нельзя использовать в качестве параметра указатель на массив. Еще есть одна проблема: компилируется эта процедура как-то странно. Вот рисунок:
На рисунке можно увидеть, что High(Array_) вроде как не компилируется. Но в действительности при трассировке, видно что все-таки проходит компиляцию так, как Higher в цикле как не странно равен последнему индексу массива. Возможно у тебя тоже была такая же ситуация с применением High. Лично я не понимаю, в чем тут дело ![]() Последний раз редактировалось Miha85193; 19.07.2010 в 17:30. |
![]() |
![]() |
![]() |
#20 | |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
![]() Цитата:
![]() ![]()
ICQ: 593-013-807
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обращение к элементам двумерного массива через указатели в С++ | серг | Помощь студентам | 17 | 06.12.2009 18:00 |
обращение к элементам двумерного массива через указатели | серг | Общие вопросы C/C++ | 2 | 05.12.2009 23:33 |
Обращение к элементам массива через указатель в С++ | серг | Помощь студентам | 1 | 24.11.2009 01:30 |
обращение к элементам двумерного массива через указатели в С ++ | серг | Помощь студентам | 0 | 23.11.2009 22:43 |