Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Передача динамічного масиву як аргументу функції | Специфікація аргументів функції
Функції C++

Передача динамічного масиву як аргументу функції

Свайпніть щоб показати меню

Передача одномірного масиву

Можна передати одномірний динамічний масив у функцію, передаючи вказівник на масив разом із розміром масиву як окремим параметром. Оскільки масиви перетворюються на вказівники при передачі у функції, можна передати вказівник на перший елемент масиву. Ось як це можна зробити:

main.cpp

main.cpp

12345678910111213141516171819202122232425262728
#include <iostream> // Function that takes a dynamic array and its size as parameters void process(int* arr, const int size) { // Access elements of the array using the pointer and the size for (int i = 0; i < size; ++i) std::cout << arr[i] << " "; std::cout << std::endl; } int main() { // Dynamic array allocation int size = 5; int* dynamic_array = new int[size]; // Initializing the dynamic array for (int i = 0; i < size; ++i) dynamic_array[i] = i * 2; // Passing the dynamic array to the function process(dynamic_array, size); // Deallocate the dynamic array to prevent memory leaks delete[] dynamic_array; }

Функція processArray() приймає динамічний масив цілих чисел (int*) і його розмір як параметри. У main() створюється динамічний масив розміром 5, ініціалізується та передається у функцію за допомогою його імені та розміру.

Передача двовимірного масиву

Під час роботи з динамічним двовимірним масивом (масив вказівників, де кожен вказівник посилається на масив елементів), його можна передати як вказівник на вказівник разом із розмірами у функцію.

main.cpp

main.cpp

1234567891011121314151617181920212223242526272829303132333435
#include <iostream> // Function that takes a dynamic 2D array and its size as parameters void process(int** arr, int rows, int cols) { for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) arr[i][j] = i * cols + j; // Fill array with values for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) std::cout << arr[i][j] << " "; std::cout << std::endl; } } int main() { int rows = 3; int cols = 4; // Dynamic 2D array allocation int** dynamicArray = new int*[rows]; for (int i = 0; i < rows; i++) dynamicArray[i] = new int[cols]; // Pass the 2D array to the function process(dynamicArray, rows, cols); // Deallocate the dynamic 2D array for (int i = 0; i < rows; i++) delete[] dynamicArray[i]; delete[] dynamicArray; }

Функція process() приймає динамічно виділений двовимірний масив (int**) і його розміри як параметри, після чого заповнює його значеннями. Масив передається у функцію за його ім'ям.

question mark

Який правильний спосіб оголосити функцію, що приймає динамічний одновимірний масив цілих чисел?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 5
some-alt