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

Вниз

Почему при передаче массива как параметра,   Найти похожие ветки 

 
SergP ©   (2003-09-22 08:55) [0]

Делаю так:
type
zvitrec = record ...
...
var
zvitmont:array[1..2000] of zvitrec;
...
procedure TForm1.c;
begin
...
b(zvitmont);
...
end;

procedure TForm1.b(var a:array of zvitrec);
begin
...
end;

Так вот: Элемент массива zvitmont[1] при передаче в процедуру b оказывается элементом a[0] , и т.д. Т.е индексы "сдвигаются" на 1
Это что за прикол такой? Нет ли в настройках компилятора такой опции чобы индексы не сдвигались?


 
icWasya ©   (2003-09-22 08:59) [1]

описатель Array of sometype предполагает, что нижний индекс массива ВСЕГДА начитается с нуля


 
HolACost! ©   (2003-09-22 09:29) [2]

Постановка вопроса и идея его принципиально ламерская!
Типа что значит сдвигаются - ты объявил массив из 20000 элементов и передаёш в процедуру адрес этого массива - а по типу array of zvitrec это есть просто указатель на массив! Гым!
ЗЫ:
Помню времена когда объявления типов нельхзя было указыватиь в прототипе функции! Эх!


 
pasha_golub ©   (2003-09-22 11:06) [3]

Чтоб не было такого используй всегда и везде

for i:=low(a) to high(a) do ...


 
SergP ©   (2003-09-22 11:35) [4]


> HolACost! © (22.09.03 09:29) [2]
> Постановка вопроса и идея его принципиально ламерская!
> Типа что значит сдвигаются - ты объявил массив из 20000
> элементов и передаёш в процедуру адрес этого массива - а
> по типу array of zvitrec это есть просто указатель на массив!
> Гым!


Ну вот я этого и не знал. Просто раньше думал что кроме указателя на массив должно еще что-то передаваться чтобы индексы соответствовали друг другу... А мне ведь пришлось час потратить на поиски ошибки.



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
1-3954
MIKL
2003-09-20 16:01
2003.10.02
Кисть!


14-4124
malkolinge
2003-09-12 18:15
2003.10.02
Вот такое бывает ????


14-4091
SergP
2003-09-13 20:30
2003.10.02
Как отучить сотрудников захламлять сетевые диски?


1-3936
Delphi5.01
2003-09-21 14:00
2003.10.02
Problema s potokom (ne mogu ubit potok)


1-3927
Катерина
2003-09-21 19:47
2003.10.02
Отладка: ошибки в try...except