| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > вопрос |
| Автор: decoder 23.6.2004, 19:26 |
| Представте ситуацию: есть динамически объявленный массив, который в коде должен быть setlength'ен как ДВУМЕРНЫЙ! Вопрос: КАК!!! |
| Автор: Albinos_x 23.6.2004, 20:15 |
| Пример: ..... type Index = array[1..100] of ^Vektor; Vektor = array[1..100] of Integer; matrix = record rows, cols : Byte; ptr : Index; end; ... var a: matrix; .... // выделяем память procedure CreateMatrix( var a : matrix; c,r : byte); var i,j : Byte; begin with a do begin rows:=r; cols:=c; J:= rows*sizeof(pointer); GetMem(ptr^, j); for j:=1 to rows do begin i:=cols*sizeof(integer); GetMem(prt^[j] , i); for i:=1 to cols do ptr^[j]^[i]:={здесь заполняем матрицу}; end; end; end; //Освобождаем память procedure Destroy( var a : matrix); var j:Byte; begin with a do begin for j:=1 to rows do FreeMem(ptr^[j],cols*sizeof(Integer)); FreeMem(ptr, rows*sizeof(pointer)); ptr:=nil; end; end; |
| Автор: Петрович 23.6.2004, 23:55 | ||
| to Albinos_x Вообщето, уже давно существуют динамические массивы, о которых кстати и спрашивал decoder to decoder Да все так-же:
|
| Автор: Albinos_x 24.6.2004, 02:00 |
| Петрович прошу прощения, я привёл пример из Turbo Paskal Добавлено @ 02:02 PS: Петрович Но пример, как раз про динамические массивы |
| Автор: Петрович 24.6.2004, 08:56 | ||
to Albinos_x
Что то я не понял, я по моему именно про них и рассказал ?) |
| Автор: Albinos_x 24.6.2004, 12:05 | ||
Петрович
Во-первых: не "имела", а "имел". Во-вторых: я привёл один из вариантов. В Паскале твой вариант не прокатит, но под Делфи проще использовать именно его. Но эффект от обеих методов будет одинаков. |
| Автор: Петрович 24.6.2004, 13:10 | ||||
Прошу не воспринимать как повод для драки
Я специально взял фразу в кавычки, дабы подчеркнуть что это цитата из песенки. В следующий раз буду уточнять
Дык судя по наличию в вопросе упоминания функции setlength речь шла именно о Delphi. Особенно, учитывая что из приведенного в хелпе заголовка этой функции не очевидно что она может иметь переменное число параметров. |
| Автор: Albinos_x 24.6.2004, 13:35 | ||
Петрович
Я уже извинился за косяк. |