Показать сообщение отдельно
  #7  
Старый 02.10.2012, 13:15
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от 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
и прочитай про динамические массивы
__________________
Код сырец
Ответить с цитированием