Menu
CoddyTech

Arrays y funciones

Parte de la sección Fundamentos del Journey de C++ de Coddy. Lección 62 de 74.

Los arreglos no se pueden pasar directamente a las funciones como arreglos completos. Cuando intentas pasar un arreglo a una función, «se convierte» en un puntero a su primer elemento.

Por ejemplo:

int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
	int size = std::size(arr);
}

std::size(arr) no se compila aquí, porque arr en realidad es un puntero, no un arreglo, y un puntero no almacena el tamaño del arreglo. Aprenderás sobre los punteros en el próximo curso.

Por eso, al pasar arreglos a funciones, normalmente necesitamos pasar el tamaño como un parámetro separado:

void processArray(int arr[], int size) {
    // Ahora podemos trabajar de forma segura con el arreglo usando el parámetro size
}

Así es como se llama a la función:

int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);

Además, no es posible devolver un arreglo en una función:

int[] processArray(int arr[]) {
	return arr;
}

Esto es ilegal. En su lugar, deberías usar la sintaxis *:

int* processArray(int arr[]) {
	return arr;
}
int* newArr = processArray(arr);

La sintaxis de asterisco (*) hace referencia a punteros, que se explicarán en el próximo curso.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de C++ online