Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
ВнизКак соединить два динамических массива? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c