2010-05-16 2 views
0
program s; 
    type info = record 
     name, surname: string; 
     min, sec: integer; 
    end; 
    arrays = array[2..50] of info; 

    var A: arrays; 
begin 
    A[1].name := 'name'; 
end. 

Что не так с этим? Это дает мне ошибку проверки диапазона, и я понятия не имею, что это.Ошибка Pascal с массивом

+0

На какой линии он дает вам проверку диапазона? – bmargulies

+0

9-я строка ....... –

+0

И, кстати, может кто-нибудь мне сказать, как Ник Д сделал так красивое редактирование? –

ответ

6

Это дает ошибку, потому что вы создаете массив из индексов 2 до 50.

Таким образом, первый элемент, который вы можете получить доступ будет 2.

begin 
    A[2].name := 'name'; 
end. 

ошибка проверки диапазона означает, что вы пытаются получить доступ к массиву в недопустимой позиции (следовательно, вне диапазона). Паскаль, в отличие от других языков, выдает ошибку компиляции, если вы это сделаете.

+0

О, боже мой, как я глуп. Спасибо. –