Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Влияние позиции переменной в разделе var на работу программы [D6, D7, XP]


Pasha L ©   (2007-01-13 21:53:00) 

Здравствуйте. Вчера я написал о странной ошибке, которая вылезала до тез пор пока я не отрубил оптимизатор. Затем стала появляться ещё одна ошибка. Тоже немного странная :) . циклы
for y:=0 to y2 do
 for x:=0 to x2 do

выполнялись, но на какой-то стадии x2 принимала какое-то черт знает откуда взятое значение... x2 я нигде не менял и это точно. И вот, получил доказательство своей правоте: в разделе var, в ряду объявления переменных типа integer я взял, и переместил x2 и y2 с последних позиций на 3-ю и 4-ю. Ошибка не выползает. Я проверил несколько раз: поперемещал туда-сюда. По-моему, это похоже на какую-то глупость, но то, вылезет ошибка или нет, зависит от позиции переменной в варе. В чем дело, кто знает?


Sha   (2007-01-13 22:37:00) [1]

Поздравляю


Pasha L   (2007-01-13 22:34:00) [2]

Так, уважаемые ребята. Я понял в чем дело. В циклах я изменял значения переменных находящихся по адресам несуществующих элементов массива. В этом было дело.


Sha   (2007-01-13 22:33:00) [3]

> Pasha L ©   (13.01.07 21:53)
> это похоже на какую-то глупость,

Это похоже на выход за границу массива
Опцию компилятора "Range checking" включи

> но то, вылезет ошибка или нет, зависит от позиции переменной в варе

Ты просто не всегда замечаешь ошибку


Pasha L   (2007-01-13 22:24:00) [4]

antonn ©   (13.01.07 21:56) [1]
всё это происходит в процедуре. Вар в той же процедуре. Весь код?... он очень большой... Я думаю, что тут не в коде самом дело. Мне кажется, что такого рода проблема как бы хрестоматийная, потому что редкая и очень странная (как мне кажется). Могу скинуть весь проэкт :)


ors_archangel   (2007-01-13 22:07:00) [5]


> . Затем стала появляться ещё одна ошибка. Тоже немного странная

И что это за новая ошибка? В [0] ты опять описал старую. Ты уверен, что переменные у тебя всегда var'овые? А вообще, зачем тебе пускать ограничения цикла по ссылке, ты их меняешь? Где?


Zeqfreed   (2007-01-13 22:04:00) [6]

Телепатирую: использовал значения счетчиков за пределами циклов?


antonn   (2007-01-13 21:56:00) [7]

в каком именно "варе"? весь код дай


Наверх

Титульная страница Поиск, карта сайта Написать письмо