|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.05.2011, 15:17 | #1 |
Пользователь
Регистрация: 09.03.2007
Сообщений: 34
|
Связный список, массив
Здравствуйте, заранее спасибо за помощь.
В объекте есть связный список, поле объекта (сам указатель на список) с названием List, в информационной части списка - массив, но почему-то когда я хочу получить адрес массива для обращения к нему, даже в самом объекте с помощью оператора @, возвращается nil, сам список рабочий - пробовал на простых числах и т.д., так же пробовал получать адрес массива сразу после создания списка - всё-равно адрес nil Ниже описание типа списка, может чем-то поможет PHP код:
|
24.05.2011, 15:33 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
давайте телепатически погадаем, какой у вас может быть код:
Код:
Код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.05.2011, 15:41 | #3 |
Пользователь
Регистрация: 09.03.2007
Сообщений: 34
|
Мне кажется я достаточно понятно объяснил и сам факт того что список рабочий должен был вас навести на мысль что new используется
Код:
|
24.05.2011, 16:26 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Writeln(Integer(@List)); //здесь не nil
потому, что здесь берется адрес поля с именем List в экземпляре объекта TList. nil там и не может быть, если объект создан (не зависимо от того, создан сам List или нет). > Writeln(Integer(@List^.Mas)); //а вот здесь nil потому, что значение (не адрес) поля List, вероятно, равно nil. Выведите вот это, чтобы проверить: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.05.2011, 16:34 | #5 |
Пользователь
Регистрация: 09.03.2007
Сообщений: 34
|
|
24.05.2011, 16:41 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
значит, нужно найти код, который его затирает
пошаговая отладка + watch на List должно показать, в каком месте List опять сбрасывается в nil.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.05.2011, 17:06 | #7 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> теперь я потерял вообще какое-либо понимание происходящего
кстати, это ж под 16-битной средой запускается, верно? Там же Integer(указатель) не имеет особого смысла, т.к. это будет просто смещение в сегменте, которое вполне может быть и 0. Вместо Integer нужно использовать LongInt. Вот, никаких nil: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 24.05.2011 в 17:36. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Двунаправленный связный список | Sibedir | Софт | 2 | 20.04.2011 05:43 |
Связный список С++ | Шёпот | Общие вопросы C/C++ | 2 | 01.04.2011 22:56 |
Связный список векторов | Kekcuk | Общие вопросы C/C++ | 0 | 13.12.2010 21:00 |
Циклический связный список | Micar | Общие вопросы C/C++ | 1 | 08.06.2010 20:28 |
Инвертировать связный список | levandowskiy | Общие вопросы C/C++ | 2 | 21.08.2009 15:20 |