В Обероне-2 можно было написать так:## Код:
```
VAR p: POINTER TO ARRAY OF CHAR;
  s: ARRAY 100 OF CHAR;
BEGIN
  ...
  COPY(p^, s)
```

Блэкбокс ругается, что COPY - это устаревшая фишка Оберона, но написать s := p^; он тоже не даёт. Говорит: «Несовместимые типы».
В итоге я написал цикл WHILE, который всё прекрасно перекопировал. А как сделать правильно?## Код:
```
PROCEDURE GetError* (VAR s: ARRAY OF SHORTCHAR);
VAR p: POINTER [untagged] TO ARRAY [untagged] OF SHORTCHAR;
BEGIN
  p := ...........;
  i := 0; WHILE (i < LEN(s)) & (p[i] # 0X) DO s[i] := p[i]; INC(i) END
```
