Lib_array2d - Динамический двухмерный массив
Вложений: 1
По просьбе vitalik1
Библиотека для создания динамических массивов чисел (integer) Перечень функций: integer Dim(x: integer; y: integer) - Создать двухмерный массив чисел с размерами X x Y Функция возвращает 0 если операция прошла успешно или -1 если нет (например, не хватает свободной памяти). Если x и y равны 0 память очищается (с вызовом Сборщика Мусора). Если надо сделать одномерный массив, вызывайте, например, так: Dim(1, 100); integer GetInt(x: integer; y: integer) - Прочитать число из массива из ячейки с адресом (x, y). PutInt(x: integer; y: integer; val: integer) - Записать число val в массив в ячейку с адресом (x, y). FillInt(val: integer) - Заполнить весь ваш массив числом val. Пример программки с использованием библиотеки: PHP код:
|
Ответ: Lib_array2d - Динамический двухмерный массив
хм, а в чем динамичность-то? Можно ли делать вот так:
Код:
i := Dim(6, 7); |
Ответ: Lib_array2d - Динамический двухмерный массив
Клево. Теперь я смогу портировать на тел одну прогу, которую когда-то писал на дельфи.
|
Ответ: Lib_array2d - Динамический двухмерный массив
Цитата:
|
Ответ: Lib_array2d - Динамический двухмерный массив
У меня вопрос. Почему во многих языках программирования нет динамических массивов. Типа это как бы позволяет интерпретатору (ну или платформе, на которой программа потом будет выполняться) память лучше распределить? Типа сразу известно, сколько памяти выделять под выполнение программы? Но ведь есть куча других способов загрузить память до предела. Вот взяли и отобрали у разработчиков такую удобную вещь =(
|
Ответ: Lib_array2d - Динамический двухмерный массив
Цитата:
|
Ответ: Lib_array2d - Динамический двухмерный массив
Ага, и тянет за собой километры стандартных библиотек. А потом программисты понятия не имеют как это все работает :( и удивляются почему их две строчки с ошибкой.
|
Ответ: Lib_array2d - Динамический двухмерный массив
Спасибо за либу odd. :super:
|
Re: Lib_array2d - Динамический двухмерный массив
Спасибо автору за библиотеку!
По сути, остался один шаг до появления в Мидлет Паскале работы с динамическими объектами? Типа New, Dispose,Mark и т.п? Это было бы просто здорово! |
Ответ: Lib_array2d - Динамический двухмерный массив
Ну это может и появится когда-нибудь. Типа просто библиотека для работы с памятью. Я щас попутно пишу библиотеку по работе с RMS. Чтоб туда можно было без проблем запихивать/извлекать картинки, к примеру, и русский текст особенно желательно.
|
Ответ: Lib_array2d - Динамический двухмерный массив
Спасибо за библиотеку!
А можно тоже самое, только для real |
Ответ: Lib_array2d - Динамический двухмерный массив
Круто, спасибо за либу. Odd, а можешь включить в неё другие типы данных (real, string и img)? Тогда ваще отпад будет =))
|
Ответ: Lib_array2d - Динамический двухмерный массив
Цитата:
Код:
a=(int *)realloc(a,sizeof(int)*(max_size+1)); |
Ответ: Lib_array2d - Динамический двухмерный массив
А в уже немолодом VB6.0 (1998г.) динамические массивы объявлялись так:
Private arData() as Integer т.е. массив без размерности - динамический. Однако перед его использованием его надо создать уже с указанием размера: ReDim arData(100) Кроме того можно изменить нетолько размер но и тип даных! ReDim arData(100) As String Чтобы стереть масив: Erase arData Чтобы переопределить размер масива и сохранить ранее там расположенные данные (если это возможно): ReDim Preserve arData(150) Отдельно стоит упомянуть о возможности указания первого индекса массива: ReDim arData(10 To 100) - массив имеет индексы от 10 до 100 включительно. Вот такой веслый язык :) |
Ответ: Lib_array2d - Динамический двухмерный массив
В C#, при желании, тоже можно расширять массив, хотя на первый взгляд такого нет.
|
Ответ: Lib_array2d - Динамический двухмерный массив
Вложений: 1
По просьбе пользователя RblSb библиотека была немного улучшена.
Добавлена возможность создания неограниченного числа массивов, а не только одного. Добавлены 2 новые функции: Arrays(i: integer) - Зарезервировать место под i массивов SetArr(i: integer) - Выбрать массив номер i из массива массивов Код примера, на котором проводилось тестирование: Код:
Program array2d2test; |
Ответ: Lib_array2d - Динамический двухмерный массив
odd, спасибо, теперь не нужно ломать голову как хранить координаты объектов на карте, ее слои и многое другое, как раз начал писать редактор карт :)
поддержка только числовых массивов? хотя мне другие и не нужны |
Ответ: Lib_array2d - Динамический двухмерный массив
Вложений: 1
Если у вас не работает новая либа (на мобильниках), вот версия с ограничением в 10 массивов. Использовать также, только вызывать метод Arrays без аргументов
|
Ответ: Lib_array2d - Динамический двухмерный массив
|
Часовой пояс GMT +4, время: 15:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot