|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.07.2011, 01:58 | #1 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
Работа с динамическими массивами типа record
Создал динамический массив такого типа:
Код:
PS Вручную создавать связанный список лень =)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
|
12.07.2011, 02:41 | #2 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
Может дело не в массиве?
Хакинг - не преступление, а способ выживания.
Последний раз редактировалось Ghost of Night; 12.07.2011 в 02:48. |
12.07.2011, 04:18 | #3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Дело не в этом массиве. У вас порча стека. Вы затираете переменную NeedList.
В программе есть статические массивы? Опция Range Check включена? Используются низкоуровневые процедуры типа Move, FillChar, ZeroMemory? Идёт работа с указателями?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
12.07.2011, 09:14 | #4 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
Статических нет, есть еще один динамический. С указателями и низкоуровневыми процедурами не работаю.
Включил Range Check и понял, что дурак.. Ведь SetLength(NeedList, 100) дает NeedList[0..99], а не NeedList[1..100]. Вечером проверю - отпишусь. UPD: всё верно, благодарю =)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Последний раз редактировалось Олвин; 13.07.2011 в 02:08. |
13.07.2011, 12:39 | #5 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Так тоже будет работать создает список массивов память ячейкам вы ваделяете по мере надобности
Код:
Код:
Последний раз редактировалось Aliens_wolfs; 13.07.2011 в 12:48. |
13.07.2011, 20:51 | #6 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
Aliens_wolfs, у меня почти так и есть. Только память выделяется один раз, но заранее неизвестно на сколько элементов. Вопрос в другом был - был выход за границы допустимого диапазона, поэтому при завершении процедуры вылетала ошибка. (видимо из-за автоматической очистки памяти)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
|
13.07.2011, 21:31 | #7 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Ошибка вылетала когда записывали информацию в массив или когда читали с массива информацию?
|
14.07.2011, 01:05 | #8 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
Да всё, ошибки нет) А вылетала она (казалось - мистика) перед end-ом процедуры, в которой объявлен массив. Ну потом я включил Range Check и она (хотя уже другая) стала вылетать при записи элемента.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
|
14.07.2011, 01:13 | #9 | |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
Цитата:
Хакинг - не преступление, а способ выживания.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с динамическими массивами | San4o | Общие вопросы Delphi | 5 | 13.09.2009 21:15 |
Задача с динамическими массивами | _grusha_ | Помощь студентам | 2 | 22.04.2009 19:46 |
Проблема с динамическими массивами | Arassir | Помощь студентам | 2 | 11.11.2008 00:15 |