Вниз
Скачать: CL | DM;

Влияние позиции переменной в разделе var на работу программы   Найти похожие ветки 

← →
Pasha L ©   (2007-01-13 21:53) [0]

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

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


← →
antonn ©   (2007-01-13 21:56) [1]

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


← →
Zeqfreed ©   (2007-01-13 22:04) [2]

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


← →
ors_archangel ©   (2007-01-13 22:07) [3]


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

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


← →
Pasha L ©   (2007-01-13 22:24) [4]

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


← →
Sha ©   (2007-01-13 22:33) [5]

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

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

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

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


← →
Pasha L ©   (2007-01-13 22:34) [6]

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


← →
Sha ©   (2007-01-13 22:37) [7]

Поздравляю



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1165072361
Керик
2006-12-02 18:12
2007.01.28
Корректно закрыть процесс


6-1156606780
DVM
2006-08-26 19:39
2007.01.28
Неблокирующие сокеты на WinAPi.


15-1167910472
Kostya_86
2007-01-04 14:34
2007.01.28
dbase


15-1167953131
Tirael
2007-01-05 02:25
2007.01.28
куда делся sysinternals?


15-1168083641
Чапаев
2007-01-06 14:40
2007.01.28
InnoSetup, файловая система




   Наверх