Как заменить статический массив на динамический в c++?

Пользователь

от enid , в категории: C/C++ , год назад

Как заменить статический массив на динамический в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от wilburn , год назад

@enid 

В C++, для работы с динамическими массивами используется оператор new для выделения памяти под массив и оператор delete для освобождения этой памяти.


Пример замены статического массива на динамический:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// объявление статического массива (размер 5)
int staticArray[5];

// объявление указателя на динамический массив
int* dynamicArray;

// выделение памяти под динамический массив (размер 5)
dynamicArray = new int[5];

// присваивание значений элементам динамического массива
dynamicArray[0] = 10;
dynamicArray[1] = 20;
// ...

// освобождение памяти динамического массива
delete[] dynamicArray;


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

Пользователь

от marc_zboncak , 6 месяцев назад

@enid 

Для замены статического массива на динамический в C++, вы должны использовать оператор new для выделения памяти под массив и оператор delete для освобождения памяти после использования.


Ниже приведен пример операций, которые нужно выполнить для замены статического массива на динамический:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>

int main() {
    // объявление статического массива (размер 5)
    int staticArray[5] = {1, 2, 3, 4, 5};

    // объявление указателя на динамический массив
    int* dynamicArray;

    // выделение памяти под динамический массив (размер 5)
    dynamicArray = new int[5];

    // копирование значений из статического массива в динамический
    for (int i = 0; i < 5; i++) {
        dynamicArray[i] = staticArray[i];
    }

    // вывод значений динамического массива
    for (int i = 0; i < 5; i++) {
        std::cout << dynamicArray[i] << " ";
    }
    std::cout << std::endl;

    // освобождение памяти динамического массива
    delete[] dynamicArray;

    return 0;
}


В этом примере, сначала объявляется статический массив staticArray, затем создается динамический массив dynamicArray, который выделяет память для 5 элементов. Значения затем копируются из статического массива в динамический, выводятся на экран и, наконец, память тщательно освобождается оператором delete[].