![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Новые вопросы - какая функция определяет наличие или отсутствие утечек памяти?
Я скачал ВинАДУ, поставил, как подключить пакет, содержащий заголовки виндовых библиотек? with ADA.Windows не рабтает, нет такого пакета. -------------------- |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, тогда без проверки:
function To_Vector (A : Key_Arr) return Key_Based_Vectors.Vector is
V : Key_Based_Vectors.Vector;
Arr_Index : Integer := A'First;
procedure Update (Item : in out Key_Base) is
begin
Item := A (Arr_Index);
Arr_Index := Arr_Index + 1;
end Update;
procedure Copy (C : Key_Based_Vectors.Cursor) is
begin
V.Update_Element (C, Update'Access);
end Copy;
use Key_Based_Vectors;
begin
Set_Length (V, A'Length);
V.Iterate (Copy'Access);
return V;
end To_Vector;
(почему использован Update_Element - ибо не может привести к реаллокации данных ни при каких условиях, следовательно индексация не собьется. Replace_Element от этого не застрахован).И function Copy_Childs (V : Vector) return Vector is
New_Vector : Vector;
procedure Deep_Copy (C : Func_Tree_Vectors.Cursor) is
begin
New_Vector.Replace_Element (C, Copy_Tree (Element (V, To_Index ( C ))));
end Deep_Copy;
begin
Set_Length (New_Vector, Length (V));
New_Vector.Iterate (Deep_Copy'Access);
return New_Vector;
end Copy_Childs;
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 17:00 |