Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2011, 14:22   #1
vsafary
 
Регистрация: 03.11.2011
Сообщений: 3
Вопрос Нарушения в динамических массивах

Доброго времени суток.
В проге имеется структура, где в т.ч. есть и динамические массивы. А так же большой одномерный битовый массив (то же динам.).
Проблема: при объявлении длины одного из дин. массивов структуры меняются несколько байт в середине большого массива.
Поменял массив на область памяти (GetMem) - то же самое.
vsafary вне форума Ответить с цитированием
Старый 03.11.2011, 14:55   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Где-то ошиблись в индексах и пишете мимо массива.

Попробуйте включить Range Check Errors и сделать проекту Build (не Compile).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.11.2011, 15:05   #3
vsafary
 
Регистрация: 03.11.2011
Сообщений: 3
По умолчанию

Беда в том , что индексы появляются позже.
После загрузки байтового массива все значения варны (по Ctrl+Alt+C - CPU).
при выполнении строки "setlength(..)" (по F7) изменяются 7 байт в средней части байтового массива.
???
vsafary вне форума Ответить с цитированием
Старый 03.11.2011, 15:14   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
После загрузки байтового массива
...теперь и загрузка откуда-то вылезла.

Код в студию.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.11.2011, 16:46   #5
vsafary
 
Регистрация: 03.11.2011
Сообщений: 3
По умолчанию

В данном случае массив загружается значениями из файла (blockread).
Но после загрузки все значения верны ("Viev-Debug Windows-CPU"). И изменяются они именно по команде "setlength".
vsafary вне форума Ответить с цитированием
Старый 03.11.2011, 16:47   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Ошибка в 17-й строке.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи по динамических массивах (платная) metalheaddd Общие вопросы C/C++ 0 03.01.2011 22:31
Изменение откомпилированой программы без нарушения закона Levsha100 Свободное общение 5 20.07.2010 22:37
Выявление нарушения последовательности чисел stasbz Microsoft Office Excel 2 21.06.2009 23:46
Сохранение документа из TWebBrowser(без нарушения работы страницы) Пепел Феникса Работа с сетью в Delphi 2 13.03.2009 21:59
Вопрос о массивах makSum Помощь студентам 3 07.06.2008 21:58