Турбо Паскаль не инициализирует переменные
Инициализированные переменные
-----------------------------------------------------------------
Турбо Паскаль не инициализирует переменные автоматически. Вы
должны сделать это сами с помощью операторов присваивания или
описав такие переменные в виде типизованных констант. Рассмотрим
следующую программу:
program Test;
var
I,J,Count : integer;
begin
for I := 1 to Count do begin
J := I*J;
Writeln(I:2,' ',J:4)
end
end
Здесь Count будет иметь какое-то случайное значение, содер-
жащееся в занимаемой этой переменной ячейке памяти, поэтому вы не
сможете определить, сколько раз будет выполнен данный цикл. Кроме
того, переменные, описанные внутри процедуры или функции, будут
создаваться каждый раз при входе в эту подпрограмму и уничтожать-
ся при выходе из нее. Поэтому нельзя полагать, что эти переменные
в промежутке между вызовами подпрограммы сохраняют свое значение.
Неправильная работа с указателями
-----------------------------------------------------------------
Этот общий тип ошибок встречается при работе с указателями.
Во-первых, как уже упоминалось ранее, не следует использовать их
до того, как им будет присвоено значение (nil (пустое) или какое-
либо другое). Как и все другие переменные или структуры данных,
указатель не инициализируется автоматически при его описании. Ему
нужно явным образом присвоить начальное значение (передав его в
качестве параметра процедуре New или возможно быстрее присвоив
ему значение nil).
Во-вторых, не ссылайтесь на пустой указатель, то есть не пы-
тайтесь обратиться к данным или структуре, на которые он указыва-