Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Paso de un Arreglo Dinámico como Argumento de la Función | Especificación de Argumentos de Funciones
Funciones en C++

Paso de un Arreglo Dinámico como Argumento de la Función

Desliza para mostrar el menú

Paso de un arreglo unidimensional

Se puede pasar un arreglo dinámico unidimensional a una función pasando un puntero al arreglo junto con el tamaño del arreglo como un parámetro separado. Dado que los arreglos se convierten en punteros al pasarlos a funciones, se puede pasar un puntero al primer elemento del arreglo. Así es como se puede hacer:

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; }

La función processArray() recibe un arreglo dinámico de enteros (int*) y su tamaño como parámetros. En main(), se crea un arreglo dinámico de tamaño 5, se inicializa y se pasa a la función usando su nombre y tamaño.

Paso de un arreglo bidimensional

Al trabajar con un arreglo bidimensional dinámico (un arreglo de punteros donde cada puntero apunta a un arreglo de elementos), se puede pasar como un puntero a puntero junto con las dimensiones a una función.

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; }

La función process() recibe un arreglo 2D asignado dinámicamente (int**) y sus dimensiones como parámetros, luego lo llena con valores. El arreglo se pasa a la función usando su nombre.

question mark

¿Cuál es la forma correcta de declarar una función que acepte un arreglo dinámico unidimensional de enteros?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 5
some-alt