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

Вниз

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

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

Наверх





Память: 0.45 MB
Время: 0.009 c
4-4164
Сергей Ю.
2003-07-29 20:01
2003.10.02
---|Ветка была без названия|---


1-3942
student
2003-09-21 13:25
2003.10.02
дефрагментация оперативной памяти


1-3966
Unknown
2003-09-20 10:42
2003.10.02
функция format


1-3973
Evg12
2003-09-19 13:02
2003.10.02
Обработка Нажатия Escape


6-4005
Maks Realov
2003-08-06 14:15
2003.10.02
Получение размера удалённого файла без его скачивания.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский