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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 16:23   #11
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Цитата:
на строчке
root^.data[i]:=lblArray[i].Caption;
вылетает и пишет: Access violation at address 00407266 in module 'Project4.exe'. Write of address 00000000
Почему так?
Сначала нужно создать TLabel:
Код:
lblArray[i]:=TLabel.Create(nil);
Думаю что ошибка именно в этом.
Delphi_ProGer вне форума Ответить с цитированием
Старый 07.06.2012, 16:27   #12
_Iren_
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 10
По умолчанию

нет, с этим все нормально.. они создаются
_Iren_ вне форума Ответить с цитированием
Старый 07.06.2012, 16:35   #13
_Iren_
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 10
По умолчанию

не может обратиться ни к root.next[i], ни к root.data[i]
_Iren_ вне форума Ответить с цитированием
Старый 07.06.2012, 17:05   #14
Bob256
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 13
По умолчанию

не поленился проверить
Код:
type
  TreePointer = ^tree;
  tree = record
    data: array of string;
    mark: double;
    next: array of TreePointer;
  end;

function CreateRoot(var root: TreePointer; lblArray: array of TLabel):
  TreePointer;
var
  i, l: integer;
begin
  new(root);
  l := length(lblArray);
  SetLength(root.data, l);
  SetLength(root.next, l);
  for i := 0 to l - 1 do
  begin
    root.data[i] := lblArray[i].Caption;
    root.next[i] := nil;
  end;
  root.mark := 0;
  result := root;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  root: TreePointer;
  lblArray: array of TLabel;
  i: Integer;
begin
  SetLength(lblArray, 10);
  for i := 0 to High(lblArray) do
  begin
    lblArray[i] := TLabel.Create(Self);
    lblArray[i].Caption := IntToStr(i);
  end;
  CreateRoot(root, lblArray);
  for i := 0 to High(lblArray) do
    lblArray[i].Free;
end;
после CreateRoot(root, lblArray)
root^=(('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'),0,(nil, nil, nil, nil, nil, nil, nil, nil, nil, nil))
Bob256 вне форума Ответить с цитированием
Старый 07.06.2012, 20:49   #15
_Iren_
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 10
По умолчанию

спасибо большое) у меня уже после перезагрузки перестал ругаться)
_Iren_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi бинарное дерево D][mon Помощь студентам 1 25.05.2011 00:06
n-мерное дерево из двоичного дерева alexande-rus Общие вопросы C/C++ 0 13.04.2011 22:04
4-ёх мерное пространство, реальность или нет?(17+) MyLastHit Gamedev - cоздание игр: Unity, OpenGL, DirectX 82 09.01.2011 16:04
Delphi-->Б-дерево-->Вознаграждение tools Фриланс 1 27.12.2009 13:40
Бинаарное дерево.Delphi 7 ZhooZhik Помощь студентам 0 04.04.2009 10:14