Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Копирование массивов

Автор: klem4 13.08.2006 0:12

На соклько такой метод надежен и стоит ли вообще так делать :


type

TMx = array [1..n, 1..n] of TType;

var
a, b : TMx;

begin
// работает с масивом a
...
b := a; // копируем a в b
end.


?
(fpc)

По поводу FPC вопрос закрыт

http://freepascal.ru/wiki/index.php/%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B

Автор: volvo 13.08.2006 0:25

Надежен абсолютно (если только массивы описаны именно так, как они описаны у тебя, статически, а не динамически) yes2.gif

Файл ref.pdf, стр 27, пункт 3.3.1 - Статические Массивы

Цитата
When static array-type variables are assigned to each other, the contents of the whole array is copied.
This is also true for multi-dimensional arrays:

Автор: klem4 13.08.2006 0:29

Да, спасибо, уже нашел эту инфу smile.gif C FPC понятно, а как с Delphi и 16-битными братьями ?

Автор: volvo 13.08.2006 0:39

И там никаких проблем не видно:
http://zeus.sai.msu.ru:7000/programming/bp70_lr/lr4.shtml#35

Цитата
Совместимость по присваиванию необходима, если имеет место присваивание значения, например, в операторе присваивания или при передаче значений параметров.

Значение типа T1 является совместимым по присваиванию с типом T2 (то есть допустим оператор T1:=T2), если выполняется одно из следующих условий:
  • T1 и T2 имеют тождественные типы, и ни один из них не является файловым типом или структурным типом, содержащим компонент с файловым типом на одном из своих уровней.

<...>
У тебя есть совместимость по присваиванию? Есть, типы переменных-то идентичны, и файлов не содержат... Поэтому никаких проблем наблюдаться не должно...