Обсуждение:Массив (тип данных)
Проект «Информационные технологии» (уровень II, важность для проекта высокая)
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Эта статья была переименована по результатам обсуждения от 4_ноября_2012 года. Старое название Массив было изменено на новое: Массив (программирование). Для повторного выставления статьи на переименование нужны веские основания, иначе такое действие будет нарушать правила (см. п. 8). |
Индексный массив править
Не является ли более правильным (и более часто употребимым) применение термина "Индексируемый массив" в качестве синонима массива, а термина "Индексный массив" - как описание массива, в котором находятся некоторые другие индексы? ram3ai 10:12, 9 января 2008 (UTC)
- Сам недоумеваю, зачем тут индексный массив. Пределал на первое время по Вирту. РоманСузи 19:20, 18 октября 2012 (UTC)
* Статический массив это массив,располагающийся в особом сегменте программы. Лучше подходит "фиксированный". Или "с фиксированной размерностью".
Ошибка? править
int **array2; // Многомерный массив
...
array2=(int**)malloc(16*sizeof(int));
Разве это корректный код? По-моему, правильно так:
array2=(int**)malloc(16*sizeof(int*));
Ассоциативный массив править
Полагаю, что не нужно убирать небольшой абзац об этом типе данных, даже если его "массивость" скрыта где-то в пучинах Лиспа, а другие реализации совсем непохожи на обычный массив. РоманСузи 18:41, 31 марта 2013 (UTC)
- Я считаю, что между ассоциативным массивом и обычным массивом столько же общего, сколько между JavaScript и Java. algolist.manual.ru — вот АИ, где утверждают, что массив — это либо доступ только по номеру элемента, либо последовательное хранение данных. Хэш-сеты же это доступ по любому ключу и хранение данных динамического размера.
- Про Лисп: во-первых, определение массива не должно быть завязано на какой-то конкретный язык, а, во-вторых, я не смог понять о какой реализации Лиспа идёт речь. Vorval_0 14:52, 23 ноября 2014 (UTC)
- OK. Убедили. РоманСузи 15:27, 23 ноября 2014 (UTC)
Стоит ли проверять на удачное выделение памяти? править
В "Пример динамического массива на Си":
array1 = (float*) malloc(10 * sizeof(float)); // выделение 10 блоков по sizeof(float) байт каждый
array2 = (int**) malloc(16 * sizeof(int*)); // выделение 16 блоков по sizeof(int*) байт каждый. Сюда будут записаны указатели на одномерные массивы-строки
for(i = 0; i < 16; ++i)
array2[i] = (int*) malloc(8 * sizeof(int)); // выделение 8 блоков по sizeof(int) байт каждый. Это одномерные массивы - строки матрицы.
// Обращение к массиву
array1[i] = 5.0; // Записи эквивалентны.
Может стоит проверять, выделена ли память (array2 != NULL, array2[i] != NULL, array1 != NULL) , или пропустим для наглядности? --93.84.1.22 19:07, 26 октября 2013 (UTC)
Или я не правильно понимаю или это ошибка править
Как понять: "При обращении к элементу массива A[i1, i2, i3, …, in] адрес соответствующего элемента вычисляется как B+S*((…(i1p*m1+i2p)*m2+…+i(n-1)p)*mn-1+inp), где B — база (адрес начала блока памяти массива), ikp — значение k-го индекса, приведённое к целому с нулевым начальным смещением." Dhcpcd (обс) 04:49, 22 сентября 2016 (UTC)
Массив <-> список править
Мне кажется, определение массива как противоположность списку слегка устарело, лет на двадцать-тридцать. Так, в языке C# есть понятие "Array" (массив), его размер фиксирован. Есть понятие "List" (список), это в принципе то же самое, только его размер можно изменять динамически (например, добавить или удалить элемент в произвольном месте). Обращение по произвольному адресу ничем не отличается от случая массива.
- И вообще, внутри список в C# (реализация Майкрософт) представлен массивом; просто при необходимости увеличить размер выделяется новый (бОльший и непрерывный) фрагмент памяти, все "старые" элементы копируются на новое место, обновляется ссылка и "старый" фрагмент памяти высвобождается.
--Adams13 (обс.) 19:57, 15 ноября 2016 (UTC)
- От того, что кто-то назвал одно другим или что с помощью чего реализовано не меняет дела. Однако, так как о связи массива и списка в самой статье не сказано, из преамбулы можно убрать. Только вот источник нужно проверить, к чему он относился. РоманСузи (обс.) 22:05, 15 ноября 2016 (UTC)