![]() |
![]() ![]() ![]() ![]() |
|
Увеличение значения указателяDelphi , Синтаксис , Память и Указатели
Автор: Григорий Ситнин
{ **** UBPFD *********** by delphibase.endimus.com ****
>>
Конвертирует указатель в Cardinal, увеличиваем значение адреса,
и конвертирует обратно в указатель, который и возвращает.
Внимание, функция не выделяет никаких блоков памяти,
она просто работает с указателем.
Зависимости: System
Автор: Григорий Ситнин, gregor@gregor.ru, Москва
Copyright: Григорий Ситнин, 2003
Дата: 8 июля 2003 г.
***************************************************** }
function IncPtr(APointer: pointer; AHowMuch: cardinal = 1): pointer;
begin
//*** Конвертируем указатель в Cardinal, увеличиваем значение адреса,
//*** и конвертируем обратно в указатель, который и возвращаем.
//**! Внимание, функция не выделяет никаких блоков памяти,
//**! она просто работает с указателем.
Result := Ptr(cardinal(APointer) + AHowMuch);
end;
Пример использования:
{$APPTYPE CONSOLE}
program testptr;
uses SysUtils, uIncPtr; //*** Модуль uIncPtr содержит функцию IncPtr
var
ptr1, ptr2: pointer;
begin
ptr1 := AllocMem(255);
ptr2 := incptr(ptr1, 10);
writeln('ptr1 : ', cardinal(ptr1));
//*** Напечатать увеличенный на 10 указатель ptr1
writeln('ptr2 (+10): ', cardinal(ptr2));
FreeMem(ptr1, 255)
end.
Пример программирования на Delphi, демонстрирующий, как увеличить значение указателя на заданное количество с помощью функции Функция Пример программы использует функцию Вот некоторые предложения по улучшению:
Вот обновленная версия кода с этими предложениями включенными: В обновленной версии я добавил более описательные комментарии, использовал многолинейные комментарии для объяснения цели каждого раздела кода и улучшил форматирование для лучшей читаемости. Я также добавил проверку на валидность указателя с помощью блока Функция IncPtr в Delphi конвертирует указатель в Cardinal, увеличивает значение адреса на заданное количество и затем обратно конвертирует в указатель, который возвращает. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Память и Указатели ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||