Как создать массив без размера с
Перейти к содержимому

Как создать массив без размера с

  • автор:

Динамический массив без размера

День добрый, сразу к делу:
Создаю я значит массив, а размер не указываю, одной кнопочкой добавляю элемент в массив, другой вывожу в memo, всё вроде бы красиво, но при выходе из программы ругается, либо зависает. Я пытался удалить этот массив с помощью
delete []массив;
Что-то как-то и не удалось , взгляните, так вообще можно делать? И как мне очистить память в данной ситуации?

int *iMas = new int; //

В iMas[0] я собираюсь хранить число элементов массива:

iMas[0] = 0;

Нажимая на кнопочку, создаётся следующий элемент и банально присваивается ему номер самого элемента:

iMas[0]++; iMas[iMas[0]] = iMas[0];

Ну и вывод:

1 2 3 4
for(int i = 1; i  iMas[0]; i++) { Memo8->Lines->Add(iMas[i]); }

Остаётся очистить так, чтобы не зависала программа при закрытии :3. Может есть более толковая версия создания безразмерного массива?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Динамический массив без явного указания размера
Самый праздный вопрос, наверное. И, вроде бы, я даже знаю ответ, но все-таки сомневаюсь. В С++.

Динамический массив произвольного размера
динамический массив заданного размера: int *massiv = new int а как организовать произвольного.

Двумерный динамический массив размера NxM
Создайте двумерный динамический массив размера NxM.Выделите для него и освободите память.

Двумерный динамический массив. Ввод размера с клавиатуры
Что я делаю не так? Хочу с клавиатуры вводить размерность двумерного динамического массива.

Как создать массив без размера?

есть массив, изначально состоящий из 1 элемента.
вводим переменную.
значение переменной присваивается элементу массива, и размер массива увеличивается на 1.

как можно реализовать эту примитивнейшую задачу? . не понимаю.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как можно создать массив разных объектов, заранее неизвестного размера?
если нужно создать несколько однотипных объектов программно то один скажем, создается кодом myobj.

Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны индексы исходного массива в порядке во
Помогите с задачей: Задан вещественный массив размера N. Создать целочисленный массив такого же.

Как создать массив большого размера
В программе будет использоваться массив большого размера. Оперативная память — 512 МБ Создаю.

Как создать массив большого размера?
Мне необходимо создать массив очень большой размерности — порядка 300 строк на 29^5*5.

Эксперт .NET

5869 / 4746 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361

cancoder,
1) можно использовать не массив, а List, он может быть даже пустым и поддерживает добавление/удаление элементов
2) если нужен именно массив, то есть метод Array.Resize(ref array, int newSize), изменяющий размер массива

Покинул форум
6598 / 1481 / 355
Регистрация: 07.05.2015
Сообщений: 2,902

Лучший ответ

Сообщение было отмечено cancoder как решение

Решение

Небольшая демка:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
using System; using System.Linq; internal sealed class Program { static void Main() { Int32[] arr = {}; Console.WriteLine("Текущий размер массива : ", arr.Length); arr = (arr ?? Enumerable.EmptyInt32>()).Concat(Enumerable.Repeat(1, 1)).ToArray(); Console.WriteLine("Размер массива после изменения : ", arr.Length); Console.Write("Элементы массива: "); foreach (Int32 i in arr) Console.Write(i); Array.Resize(ref arr, 5); Console.WriteLine("\nРазмер массива стал : ", arr.Length); Console.Write("Элементы массива: "); foreach (Int32 i in arr) Console.Write(" ", i); arr = arr.Where(i => i != 0 && i != 1).ToArray(); Console.WriteLine("\nРазмер массива : ", arr.Length); } }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Из двух упорядоченных массивов размера n и m соответственно создать упорядоченный массив размера n+m
Из двух числовых упорядоченных одномерных массивов размера n и m соответственно создать.

Как создать массив или вектор размера больше чем 0x7fffffff?
Вопрос вот в чем.. максимальная разрядность сетки блоков нитей 2^31-1 на GPU (используя CUDA на.

Массив без размера
void in(bibl, int&); что означает bibl ?

Динамический массив без размера
День добрый, сразу к делу: Создаю я значит массив, а размер не указываю, одной кнопочкой добавляю.

Как создать массив в java без длины

Привет. А как получить все элементы этого массива? System.out.println(Arrays.toString(dynamicArray)); Такой вывод не работает.

08 апреля 2023

В Java не существует способа создать массив без длины. При создании массива нужно указать его длину, чтобы определить необходимое количество памяти.

Однако, если вы не знаете заранее размер массива, можно создать массив с нулевой длиной и затем добавлять элементы в него по мере необходимости, используя методы класса ArrayList

Пример создания динамического массива с помощью ArrayList :

import java.util.ArrayList; public class Example  public static void main(String[] args)  ArrayListInteger> dynamicArray = new ArrayListInteger>(); // Добавляем элементы в массив dynamicArray.add(10); dynamicArray.add(20); dynamicArray.add(30); // Получаем элементы массива System.out.println(dynamicArray.get(0)); // => 10 System.out.println(dynamicArray.get(1)); // => 20 System.out.println(dynamicArray.get(2)); // => 30 > > 

Динамические массивы в C++ — урок 8

В пятом уроке мы разобрали понятие массива. При объявлении, мы задавали массиву определенный постоянный размер. Возможно, кто-то из читателей пробовал делать так:

Но, как уже было сказано — при объявлении статического массива, его размером должна являться числовая константа, а не переменная. В большинстве случаев, целесообразно выделять определенное количество памяти для массива, значение которого изначально неизвестно.

Например, необходимо создать динамический массив из N элементов, где значение N задается пользователем. В предыдущем уроке мы учились выделять память для переменных, используя указатели. Выделение памяти для динамического массива имеет аналогичный принцип.

Создание динамического массива

 using namespace std; int main() < int num; // размер массива cout > num; // получение от пользователя размера массива int *p_darr = new int[num]; // Выделение памяти для массива for (int i = 0; i < num; i++) < // Заполнение массива и вывод значений его элементов p_darr[i] = i; cout delete [] p_darr; // очистка памяти return 0; > 

Синтаксис выделения памяти для массива имеет вид указатель = new тип[размер] . В качестве размера массива может выступать любое целое положительное значение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *