Цитата:
Сообщение от o919322
Здравствуйте.
Есть тривиальный кусок кода:
Код:
var
i: integer;
mas_p:array[0..100] of integer;
begin
for i:=0 to 80 do
mas_p[i]:=i;
ShowMessage(IntToStr(low(mas_p))); // выдает 0
ShowMessage(IntToStr(high(mas_p))); // выдает 100
ShowMessage(IntToStr(length(mas_p))); // выдает 101
ShowMessage(IntToStr(SizeOf(mas_p))); // выдает 404
end;
Почему delphi7 выдает high = 100? Когда у меня введено в массив только 81 значение
И как правильно получить количество значений в массиве (в данном примере 81)?
|
у тебя массив длинной 101 элемент mas_p:array[0..100] of integer;
заполняешь его значениями ты только до mas_p[80] --> for i:=0 to 80 do остальное за тебя кто-то другой заполняет.
Решение при заполнении использовать конструкцию
Код:
for i:=Low(mas_p) to High(mas_p) do
и прочитай про динамические массивы