Ошибка при объявлении указателя [РЕШЕНО]


#1

В справке приведен пример:

var
    i: integer;
    pi: ^integer;

При компиляции последняя версия PascalABC выдает ошибку:

Pointer.pas(5) : Встречено ‘^’, а ожидался оператор

Если же объявить указатель не в списке var, а отдельно -

var i: integer;
var p_i: ^integer;

то ошибок не выдается.

Это, конечно, не критично, но сам факт того, что ошибочно расценивается как ошибка верный синтаксис - не есть хорошо. Пожалуйста, внесите исправление в ближайшем релизе.


#2

Прямо-таки в ближайшем? Самая большая проблема, требующая исправления? Вы посмотрите, столько тут вообще тем и сообщений, связанных с указателями. Похоже, кроме Вас, они никому и не нужны особо…


#3
  1. Вы разработчик?
  2. Если нет - то вас совершенно не касается, кому и зачем нужны те или иные возможности ЯП, которые заявлены как реализованные и под которые даже отведен раздел официальной справки. То что заявлено как работающее - должно работать, если оно работает недостаточно хорошо - оно должно быть исправлено. В каком порядке реализовывать исправления по мере важности - решают разработчики, это их естественное право. Равно как и естественное право пользователя - просить разрабочиков об исправлении багов не ориентируясь на мнение по этому поводу других пользователей.

#4

@SGrishin: Вы не путаете форум с жалобной книгой? Форум - он существует для того, чтобы люди могли свободно высказывать свое мнение по любому вопросу,независимо от их статуса. Так что не нужно пытаться тут рот кому -либо затыкать. У каждого своя заноза в … ну, Вы поняли где, а у некоторых и не одна. И никто не пытается разработчиков подталкивать, указывая, что в каком порядке реализовывать. Поэтому Ваше “в ближайшем релизе” выглядит, извините, по меньшей мере бестактно, о чем выше и написано.


#5

У меня все компилируется. По крайней мере эти 3 строчки.


#6

У меня тоже компилируется без проблем. Специально только что обновил. Похоже у вас был какой то код перед

var
  i:integer;
  p_i:^integer;

возможно он вызвал ошибку? Киньте вашу программу целиком.


#7

Вы не путаете форум с жалобной книгой?

Представьте себе, не путаю. Форум помимо прочего есть багтрекер. Если вам показалось, что мой комментарий неуместен - обратитесь к модератору, а не устраивайте тут разборки.

не нужно пытаться тут рот кому -либо затыкать

Не нужно лезть со своим ценным мнением туда, где вас не просили его высказывать. Подобное - бестактно.

Ваше “в ближайшем релизе” выглядит, по меньшей мере бестактно

Если это покажется бестактным разработчикам - т.е. тем людям, которым я адресовал свой пост - они мне сами об этом скажут. Впрочем - я сомневаюсь в том, что им так покажется.

Я в первый и последний раз убедительно прошу вас прекратить оффтоп и флуд.


#8
program TestPointerInPascalABC;

begin

var
    i: integer;
    p_i: ^integer;
p_i := @i;
p_i^ := 5;
writeln(i);

end.

И вот в этом случае и выдается ошибка.

Вместе с тем вот этот код отрабатывает вполне себе:

program TestPointerInPascalABC;

begin

var i: integer;
var p_i: ^integer;
p_i := @i;
p_i^ := 5;
writeln(i);

end.

#9

Нет, багтрекер тут.На форуме разбираются что баг а что нет перед тем как туда добавлять.


#10

Всё правильно, вы смешали локальное и глобальное объявления.

Глобально:

program TestPointerInPascalABC;

var
  i: integer;
  p_i: ^integer;

begin
  p_i := @i;
  p_i^ := 5;
  writeln(i);

end.

Локально:

program TestPointerInPascalABC;

begin

  var i: integer;
  var p_i: ^integer;
  p_i := @i;
  p_i^ := 5;
  writeln(i);

end.

Кстати ошибки не требующие сильно большой дискуссии кидают не в отдельную тему а сюда.


#11

Спасибо за пояснение. Можно ли как-то закрыть тему, раз вопрос разрешился?


#12