Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-15656
Alexander Dedusenko
2003-01-27 12:45
2003.02.06
Класс окна


14-15914
Vita
2002-12-27 18:11
2003.02.06
Экспорт из QReport в Word


14-15875
BigBadMutuh
2003-01-16 08:28
2003.02.06
Оцифровка Аудио CD под WinXP


1-15678
Noname Master
2003-01-27 12:10
2003.02.06
Точка вместо запятой


1-15557
Jaxtor
2003-01-28 15:09
2003.02.06
Функция выравнивания в ComboBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский