Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Как сложить динамические массивы?   Найти похожие ветки 

 
REA ©   (2003-01-27 19:00) [0]

Сделал функцию, которая возвращает динамический массив. Как бы теперь ее результат присуммировать в конец другого массива желательно без CopyMemory (например Slice, Copy) и т.п. Строки ведь можно плюсом складывать...


 
gsu ©   (2003-01-27 19:03) [1]

д. массивы (данные) целиком вообще не копируются (у мя, если кто умеет покажите, плиз)
а у тя я бы установил длину 1 массива и поэлементно ...


 
REA ©   (2003-01-27 19:06) [2]

Да поэлементно то понятно что можно...


 
gsu ©   (2003-01-27 19:07) [3]

(-:|~
ежли узнаешь кинь на мыло, оки ?


 
REA ©   (2003-01-27 19:14) [4]

А не будет ли утечки памяти, если одному дин. массиву присвоить другой? Или лучше первому сначала явно Nil присвоить?


 
gsu ©   (2003-01-27 19:15) [5]

>> одному дин. массиву присвоить другой
как a:=b ?


 
REA ©   (2003-01-27 19:26) [6]

Ну да. Они же пойнтеры вроде почти за исключением того, что Delphi отслеживает счетчик ссылок на массив. Хотя видимо если в массиве что-то есть и ему присвоить другой, то его счетчик ссылок уменьшится и став равным 0 массив уничтожится.


 
gsu ©   (2003-01-27 19:32) [7]

>> Или лучше первому сначала явно Nil присвоить
и первый сгинет в небытие
просто переприсваивай, а ненужные указатель заниляй

>> если в массиве что-то есть и ему присвоить другой, то его счетчик ссылок
>> уменьшится
увеличится

>> массив уничтожится
когда не будет ни одного указателя на него, т.е a,b, ...:=nil



 
REA ©   (2003-01-27 19:42) [8]

Ну потом то понятно, что увеличится, но сначала то уменьшится.


 
gsu ©   (2003-01-27 19:45) [9]

>> сначала то уменьшится
С самого начала увеличится от 0 до 1 (-:|~



 
Sha ©   (2003-01-27 20:15) [10]

2 REA © (27.01.03 19:00)
Вот эквивалент для a:=a+b; (еслибы так было можно писать).

SetLength(a,Length(a)+Length(b));
System.Move(b[0],a[Length(a)],Length(b)*SizeOf(b[0]);


 
gsu ©   (2003-01-27 20:28) [11]

т.е к концу а цепляется начало b, здорово



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-15579
TAN
2003-01-28 17:26
2003.02.06
FileListBox и копирование


14-15899
IronHawk
2003-01-05 20:14
2003.02.06
Помощь в плане поиска для реферата!


3-15521
pave1
2003-01-19 20:47
2003.02.06
Создание индекса для dBase


1-15750
dimitriy.sd
2003-01-28 11:52
2003.02.06
Уважаемые мастера разъясните пожалуйста


9-15391
Анат
2002-08-17 22:32
2003.02.06
Мужики , пишу РПГ ,всё путём ,но есть пара вопросов...