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

Вниз

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

 
anton20vlad   (2009-04-09 13:12) [0]

Есть массив A и есть массив B:


var
 A: Pointer;
 B: Pointer;


Размер элементов массива в памяти заранее неизвестен. Как получить массив С состоящий из всех элементов массива А, а затем из всех элементов массива В?


 
Palladin ©   (2009-04-09 13:17) [1]

никак


 
TUser ©   (2009-04-09 13:55) [2]

создать новый массив и копировать туда элементы


 
12   (2009-04-09 14:01) [3]

алгоритм как-то так
movememory с , a, length(a)
movememory с+length(a) , b, length(b)
setlength c,length(a)+length(b)


 
@!!ex ©   (2009-04-09 14:04) [4]

SetLength, Length, CopyMemory и понеслась.
Кода врядли кто даст.


 
Сергей М. ©   (2009-04-09 14:13) [5]


> Размер элементов массива в памяти заранее неизвестен


Никак.


 
Sapersky   (2009-04-09 14:20) [6]

http://www.rsdn.ru/article/Delphi/dynarrays.xml


 
Плохиш ©   (2009-04-09 14:20) [7]


> Есть массив A и есть массив B:
>
>
> var
>  A: Pointer;
>  B: Pointer;

Это в какой версии массивы переименовали в pointer?


 
test ©   (2009-04-09 14:29) [8]

var
 a,b,c:array of integer;
 count:integer;
begin
 SetLentgh(a,3);
 SetLength(b,9);
 SetLength(c,(Length(a)+Length(b)));
 for count := 0 to length(a)-1 do
   c[count] := a[count];
 for count := 0 to length(b)-1 do
   c[count+Length(a)] := b[count];
end;


 
clickmaker ©   (2009-04-09 15:02) [9]

> Размер элементов массива в памяти заранее неизвестен

в этом случае спасет только некий признак конца массива. Как в нуль-терминированных строках pchar


 
Anatoly Podgoretsky ©   (2009-04-09 15:19) [10]

> test  (09.04.2009 14:29:08)  [8]

Это ничего, что переменная цикла неопределена при выходе из цикла?


 
test ©   (2009-04-09 15:35) [11]

Anatoly Podgoretsky ©   (09.04.09 15:19) [10]
Его же for инициализирует, а так она вообщем то нигде кроме for не используется. Да и пример я не прорабатывал, можно еще например сказать, что массивы не инициализированны. Фактически пример гоняет мусор между 3-мя массивами.


 
Юрий Зотов ©   (2009-04-09 15:40) [12]

> test ©   (09.04.09 14:29) [8]

Для массивов "of integer" нужны всего 2 строчки: SetLength и Move.


 
Anatoly Podgoretsky ©   (2009-04-09 16:05) [13]


> test ©   (09.04.09 15:35) [11]

Уже вижу, все в порядке.


 
test ©   (2009-04-09 16:37) [14]

Юрий Зотов ©   (09.04.09 15:40) [12]
Я в расчете на то что будудт использовать типы String, Pointer, Object мало ли что автору нужно.


 
Плохиш ©   (2009-04-10 01:56) [15]


> test ©   (09.04.09 14:29) [8]
>
> var
>  a,b,c:array of integer;

Вообще-то у автора Pointer. Не надо приводить задания к тем, которые описаны в любой книжке для "полных чайников".


 
Германн ©   (2009-04-10 02:10) [16]


> Вообще-то у автора Pointer.

Автор просто задал "дурной" вопрос.
Если бы он описал задачу, было б проще.


 
Amoeba ©   (2009-04-10 02:12) [17]

Будем ждать возвращения автора.


 
oxffff ©   (2009-04-10 03:09) [18]


> anton20vlad   (09.04.09 13:12)  


Сделать можно через создание аналога _DynArrayCopyRange.

см. system.



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

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

Наверх




Память: 0.5 MB
Время: 0.012 c
15-1235573250
Dennis I. Komarov
2009-02-25 17:47
2009.05.24
delphimaster.ru :)


15-1237498202
Юрий
2009-03-20 00:30
2009.05.24
С днем рождения ! 20 марта 2009 пятница


2-1239438704
Strelok
2009-04-11 12:31
2009.05.24
picture on click


15-1237805266
немо2
2009-03-23 13:47
2009.05.24
Чем Express Editions отличаются от других версий SQL Server?


3-1221048997
Drowsy
2008-09-10 16:16
2009.05.24
Как в ХП передать вводимую строку из DBGrid-а?