Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2010, 18:33   #1
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию Динамическая матрица

Здравствуйте, уважаемые форумчане!
Можно ли в Дельфи создать такой динамический двумерный массив, чтобы память под все элементы выделялась один раз. Всмысле, скажем, если грузить из файла поизвольную матрицу, не делать для каждой строки Setlength по столбцам, а сделать что-то вроде
Код:
SetLength(A,x,y);
То есть, чтобы массив получился хоть и динамический, но с строго заданными высотой. Есть ли в Delphi такие средства?
Изобретатель велосипедов

Последний раз редактировалось Selestis; 20.02.2010 в 19:15.
Selestis вне форума Ответить с цитированием
Старый 20.02.2010, 19:09   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

1) Читать второй пункт моей подписи !
2) http://programmersforum.ru/showthread.php?t=8011
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 20.02.2010, 19:10   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Читайте документацию.

Цитата:
For dynamic arrays, SetLength may take more than one length parameter (up to the number of array dimensions). Each parameter specifies the number of elements along a particular dimension.
Ваш код работает.
p51x вне форума Ответить с цитированием
Старый 20.02.2010, 19:13   #4
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Я не спрашиваю, "как создать двумерный динамический массив", куда вы меня отправили, я вроде бы более или менее чётко объяснил, что мне нужно: динамический массив с фиксированной шириной (но переменной высотой)...

19:14

p51x, то конечно работает, но для структуры
Код:
var A: array of array of ...
Но мне нужно не это, а то, чо я написал в предыдущем посте...

19:18

Чувствую, нужно пояснить:
Пусть есть массив
[1]A A A
[2]A A
[3]A A A A
Тогда результатом вызова Setlength(3,2) будет
[1]A A A
[2]A A
[3]A A
Но мне нужно:
[1]A A
[2]A A
[3]A A

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор
Изобретатель велосипедов

Последний раз редактировалось mihali4; 20.02.2010 в 20:49.
Selestis вне форума Ответить с цитированием
Старый 20.02.2010, 20:07   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Читайте вы внимательно!

SetLength(A,3,2) - установит размерность массива А в 3х2 и никаких первого, второго вариатов не будет.
p51x вне форума Ответить с цитированием
Старый 20.02.2010, 20:37   #6
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Виноват, неправильно перевёл написанное в справке, спасибо! =)
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
Динамическая структура Nitriyc Помощь студентам 0 18.12.2009 17:51
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Динамическая память!!! Doholyan Паскаль, Turbo Pascal, PascalABC.NET 12 30.06.2009 17:11