Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > В чем суть ошибки Pointers и динамические строки


Автор: andru2012 28.3.2014, 23:49
Вот написал программу, для формирования слова с указателями (pointers)
Но PascalABC пишет ошибку в строке 19 (pointers.pas(19) : element не объявлен в типе pointer)

Помогите мне! Я буду очень благодарен

Код

program pointers;
 
type
  zv = ^pointer;
 
  pointer = record
    element : char;
    next : zv;
  end;
 
var
  vlan : zv;  {separate element}
  vslov : zv;  { pointer for word }
  symbol : char;
 
begin
  readln(symbol);
  new(vslov);
  
  vslov^.element := symbol;
  vslov^.next := nil;
  vlan := vslov;
  
  while symbol <> '.' do
    begin
      read(symbol);
      new(vlan^.next);
      vlan := vlan^.next;
      vlan^.element := symbol;
      vlan^.next := nil;
    end;
end.


И если вам совсем не трудно, как сделать так, чтобы логической переменной LT присваивалось значение TRUE если слово начинается с буквы "N" ?

Автор: Bose 29.3.2014, 04:37
Ну я б начал с того, что переименовал СВОЙ тип данных pointer и дал ему какое-то другое название, так чтобы оно НЕ СОВПАДАЛО с встроенным в Delphi типом. Например в MyPointer.

Автор: Poseidon 29.3.2014, 23:22
Цитата(Bose @  29.3.2014,  04:37 Найти цитируемый пост)
Ну я б начал с того, что переименовал СВОЙ тип данных pointer и дал ему какое-то другое название, так чтобы оно НЕ СОВПАДАЛО с встроенным в Delphi типом. Например в MyPointer. 
Это, безусловно, корень проблемы. Но конкретно эта ошибка происходит из-за того, что строка zv = ^pointer; делает zv ссылкой не на самопальный record под именем pointer, а ссылкой на внутренний тип Delphi под именем pointer.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)