Как передать динамический массив в функцию?

Чтобы передать динамический массив в функцию в языке C++, можно воспользоваться указателями. Указатель может хранить адрес памяти, где находится начало массива.

Вот пример:

#include <iostream>

// Функция, принимающая динамический массив и его размер
void printArray(int* arr, int size) {
    for(int i = 0; i < size; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
}

int main() {
    int size;
    std::cout << "Введите размер массива: ";
    std::cin >> size;

    // Выделение памяти для динамического массива
    int* array = new int[size];

    std::cout << "Введите элементы массива: ";
    for(int i = 0; i < size; i++) {
        std::cin >> array[i];
    }

    std::cout << "Массив: ";
    printArray(array, size);

    // Освобождение памяти
    delete[] array;

    return 0;
}

В данном примере мы создаем функцию printArray, которая принимает два аргумента: указатель на целочисленный массив arr и его размер size. В функции main мы выделяем память для динамического массива с помощью оператора new. Затем считываем элементы массива с помощью cin и передаем массив и его размер в функцию printArray. После работы с массивом мы освобождаем память с помощью оператора delete[].

Нужно помнить, что при работе с динамическими массивами необходимо следить за выделением и освобождением памяти, чтобы избежать утечек памяти. В качестве альтернативы использованию динамических массивов, вы можете использовать контейнеры STL, такие как std::vector, которые предоставляют удобные методы для работы с динамическими массивами и автоматически управляют памятью.