Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Память и указатели


Страницы:   1 2

TUser ©   (2004-09-10 16:10:00) 

Как будет размещена в памяти такая структура

PLock = ^TLock;
TLock = record
   Next:PLock;
   FirstFound:PFound; // Это некий указатель, неважно какой
   StrandsAndLoops:array [0..5] of TStrandOrLoop;
   Num:integer;
   end;

где

   TStrandOrLoop = record
      Chain:char;
      S, E:integer;
      Sequence:string;
      end;

Создаю это дело через New, вроде бы все должно работать. И все работает, но на таком вот участке кода получаю AV

var pl1,pl:PLock;

for i:=0 to 5 do begin
  pl1^.StrandsAndLoops[i].Chain:=pl^.StrandsAndLoops[i].Chain;
  pl1^.StrandsAndLoops[i].S:=pl^.StrandsAndLoops[i].S;
  pl1^.StrandsAndLoops[i].E:=pl^.StrandsAndLoops[i].E;
  pl1^.StrandsAndLoops[i].Sequence:=pl^.StrandsAndLoops[i].Sequence;
  end;

Аналогично будет AV, если написать

for i:=0 to 5 do
  pl1^.StrandsAndLoops[i]:=pl^.StrandsAndLoops[i];

Ctrl-F7 на pl^ показывает полную ерунду, которая никак не соотвествует тем значениям, которые присвоены этому pl. То, что изначально они присвоены правильно - в этом я точно уверен. Но складывается впечатление, что в этом месте pl указывает совсем непонятно куда, где лежит какая-то лажа.
В чем тут может быть дело.

PS. Понимаю, что трудно ответить на такой вопрос, не перекопав исходники всего проекта, но вдруг ...


Digitman   (2004-09-10 16:14:00) [21]


> И все работает


а что, собссно, работает-то ? New() ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо