Показать сообщение отдельно
  #1  
Старый 13.10.2011, 22:04
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию при работе с массивами ошибка

здраствуйте.
у мя в программе используется несколько динамических массивов.постоянно идёт с ними работа.
и в одном месте при попытке сделать массив нулевым ( setlength(PosList,0) ) пишет Invalid Pointer Operation и дальше при размер не изменяется. (проверял кнопочкой через ShowMessage(IntToStr(Length(PosList)));
но при этом при попытке считать значения/записать/изменить длинну массива нельзя, ерроры сыпятся.
случилось это после того как создал еще один массив.
Ошибок типа записи в несуществующий элемент массива нету точно.
один чел сказал что это может быть из-за грязно-инициализированных массивов,я честно непонял как это понять.
массивы создаю обычным путём (типа PosList: array of Integer; )
почти везде длинна увеличивается следующим путём SetLength(PosList,Length(Poslist)+1);.
И еще заметил,если эта процедура,в которой присутствует строка setlength(PosList,0) вызывается из другого места программы,то всё норм,а из еще одного места уже ошибка,ну естественно после появления ошибки,обращение к массиву из любого места выдает ошибку.и при закрытии программы тоже.
Что это может быть,почему? может это из-за того что используется много динамических массивов и приложение наичнает в них путаться?
В данном случае именно ошибок в коде точно нет,я уверяю.разме что дейтсвительно массивы инициализированы грязно (хз как понять))
Ответить с цитированием