Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.15. Работа с матрицами и массивами

А.5.15.7. rdsCopyVarArray – копировать одну матрицу/массив в другую

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.15. Работа с матрицами и массивами

##### А.5.15.7. rdsCopyVarArray – копировать одну матрицу/массив в другую

Функция rdsCopyVarArray копирует все содержимое одной матрицы (то есть статической или динамической переменной блока, являющейся матрицей или массивом) в другую. Она также может использоваться для копирования в матрицу содержимого переменной произвольного типа, если фактическое значение последней в данный момент является матрицей, совместимой по типу.

      BOOL RDSCALL rdsCopyVarArray(
        LPVOID DestBaseAddr,    // Базовый адрес получателя
        LPVOID SrcBaseAddr      // Базовый адрес источника
      );

Тип указателя на эту функцию

RDS_BpVpV

Параметры

DestBaseAddr(LPVOID)
  Указатель (может быть любого типа, в т.ч. и void*) на данные матрицы-получателя в дереве переменных блока, то есть указатель на область из восьми байтов, которые эта матрицы занимает в дереве переменных (см. §2.5.3 руководства программиста).
SrcBaseAddr(LPVOID)
  Указатель на данные переменной-источника (матрицы или переменной произвольного типа). Размещение переменной произвольного типа в памяти описывается в §2.5.6 руководства программиста.

Возвращаемое значение

TRUE – значение переменной скопировано успешно, FALSE – произошла ошибка (попытка копирования матриц несовместимых типов).

Примечания

Эта функция копирует содержимое одной матрицы (массива) в другую, если типы их элементов совместимы. Матрица-получатель данных должна обязательно быть переменной (не важно, статической или динамической) типа «матрица» или «массив», а матрица-источник может быть как матрицей/массивом, так и переменной произвольного типа – в этом случае копирование будет выполнено только в том случае, если ее фактическое значение на момент вызова функции является матрицей. После копирования старое содержимое матрицы, находящейся по указателю DestBaseAddr, будет потеряно, и матрица получит новый размер и новое содержимое. Если копируемая матрица была пустой, матрица-получатель будет очищена (получит размер 0×0).

Если типы элементов источника и получателя совпадают, копирование выполняется быстрее всего. Если типы отличаются, RDS будет выполнять преобразование типа для каждого элемента. Например, если получатель – матрица строк, а источник – матрица вещественных чисел, каждое вещественное число при копировании будет преобразовано в строку.

Сервисные функции RDS одинаково работают с матрицами и с массивами, поэтому с помощью этой функции можно копировать матрицы в массивы и массивы в матрицы.

Пример

Пример использования функции rdsCopyVarArray приведен в §2.6.5 руководства программиста.

См. также

rdsCopyRuntimeType, rdsCopyVarGeneral.