Глубокое копирование постоянных массивов в Pascal/DelphiDelphi , Синтаксис , МассивыВ статье рассматривается вопрос о глубоком копировании постоянных массивов в языках программирования Pascal и Delphi. Мы рассмотрим, когда необходимо выполнять глубокое копирование, и предложим решения для этого. ВведениеМассивы в Pascal и Delphi могут быть статическими или динамическими. Статические массивы копируются по значению, в то время как динамические массивы копируются по ссылке с отложенным механизмом копирования. При назначении статического или динамического массива другому массиву определяется только назначение указателя на него, а не элементов, для которых необходимо использовать функцию копирования. Пример проблемыРассмотрим следующий пример кода на Object Pascal (Delphi):
В этом примере функция РешениеОтвет на этот вопрос зависит от того, что мы хотим сделать с массивом В нашем примере, если мы хотим, чтобы массив
В этом примере мы используем функцию Альтернативное решениеЕсли мы не хотим выполнять глубокое копирование массива, мы можем просто назначить указатель на массив, возвращаемый функцией
ЗаключениеВ этой статье мы рассмотрели вопрос о глубоком копировании постоянных массивов в языках программирования Pascal и Delphi. Мы увидели, что назначение массива, возвращаемого функцией, может привести к назначению указателя на массив, а не элементов массива. Мы предложили решение, использующее функцию В статье рассматривается вопрос о необходимости и способах выполнения глубокого копирования постоянных массивов в языках программирования Pascal и Delphi, обсуждаются последствия копирования массивов по ссылке и предлагаются методы для создания независимы Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |