Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Массив компонентов 3

Delphi , Синтаксис , Массивы

Массив компонентов 3

Программист задел локтем книжку на столе, она упала и заодно сбила открытую бутылку пива... Он, чертыхаясь, поднимает книжку - это руководство по программированию в Windоws:
- Вот чертов Маздай, даже в виде книжки чуть что - падает и все рушит!


type
PtImg = ^TtImg;
TtImg = array [0..0] of TImage;

var
tImg: PtImg;

GetMem(tImg, 4 * numberofentries);

Преимущество в том, что вы должны использовать столько памяти, сколько вам нужно. Недостаток в том, что вы должны кодировать все с tImg^[n]....

Here's the translation of the text into Russian:

Прекрасный фрагмент кода!

Похоже, программист пытается динамически выделить память для массива компонентов TImage с помощью процедуры GetMem из языка Delphi.

Вот разбивка того, что происходит:

  1. Тип PtImg объявлен как указатель на TtImg.
  2. TtImg определена как массив элементов TImage, с диапазоном размера от 0 до 0 (т.е., это пустой массив).
  3. Переменная tImg типа PtImg объявлена.
  4. Процедура GetMem вызывается для динамического выделения памяти для переменной tImg. Аргумент 4 * NumberOfEntries указывает на количество памяти, которое должно быть выделито, что, вероятно, является магическим числом (более об этом позже).

Программист пытается достичь двух вещей:

Плюс: Используя динамическое выделение памяти с помощью GetMem, они могут выделить ровно столько памяти, сколько нужно для их массива компонентов TImage. Это может быть более эффективно, чем выделение фиксированного размера массива, который может занимать лишнюю память.

Минус: Как упоминается в коде, это подход требует кодирования всех доступов к массиву tImg с помощью tImg^[n], что может стать скучным и ошибочным.

Магическое число 4 * NumberOfEntries, вероятно, связано со размером объекта TImage или его ассоцированных структурах данных. В Delphi NumberOfEntries - это системная константа, возвращающая количество элементов в текущем списке свободной памяти. Умножение этого значения на 4 (что, вероятно, является размером указателя) может быть попыткой выделить достаточно памяти для массива элементов TImage.

Однако без дополнительного контекста или знаний о конкретных требованиях программы трудно предложить более конкретный анализ или альтернативные решения.

В статье описывается пример использования динамического массива TImage в программировании на языке Delphi, где автор создает указатель на массив изображений и использует функцию GetMem для выделения памяти.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Массивы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 02:38:16/0.0033268928527832/0