Главная страница
    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.011 c
4-15988
Ipx
2002-12-24 08:38
2003.02.06
Как поместить панель задач (если возможно) в любое место (по высо


4-16011
kostik78ua
2002-12-23 10:48
2003.02.06
Регистрация шрифта


3-15473
mic_2000
2003-01-20 12:40
2003.02.06
Вопрос rFunc для Ib6, немогу с функцией IIF разобраться


1-15681
Сергей Бушин
2003-01-25 22:01
2003.02.06
Градиент кругленький


3-15484
Наташа
2003-01-20 18:01
2003.02.06
Sql запрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский