Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Изменение размера динамической структуры

Чем больше структура программы соответствует ее логике, тем меньше вы стоите как программист.

При изменении размера динамической структуры удобно пользоваться процедурой ReallocMem. Это возможно в том случае, если после этих данных память пуста. Если же это не получится, будет выделен новый кусок памяти, а данные перемещены туда. Пример:


 function ShowArray(p: PByteArray; count: integer): string;
 var
   i: integer;
 begin
   result := '';
   for i := 0 to count - 1 do
     result := result + IntToStr(p^[i]) + ' ';
 end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
   p: PByteArray;
   i: integer;
 begin
   randomize;
   p := AllocMem(10);
   for i := 0 to 9 do
     p^[i] := random(256);
   Label1.Caption := ShowArray(p, 10);
   ReallocMem(p, 20);
   for i := 10 to 19 do
     p^[i] := random(256);
   Label2.Caption := ShowArray(p, 20);
 end;
 

Динамический массив заполняется случайными числами. После этого размер массива изменяется. Для этого используется лишь одна процедура - ReallocMem. После ее выполнения, данные в начале массива остаются неизмененными.




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS