Cómo Devolver Una Matriz

Tabla de contenido:

Cómo Devolver Una Matriz
Cómo Devolver Una Matriz

Video: Cómo Devolver Una Matriz

Video: Cómo Devolver Una Matriz
Video: C+ | ¿CÓMO RETORNAR ARRAYS (PUNTEROS) DE UNA FUNCIÓN? 2024, Mayo
Anonim

Las matrices son una de las formas más simples de almacenamiento de datos estructurados. Dado que se asignan áreas de memoria indivisibles para almacenar matrices unidimensionales, y la mayoría de los lenguajes de programación tienen construcciones sintácticas para su declaración, se utilizan intensamente como búfer para transferir grandes cantidades de información a varias funciones (incluida la biblioteca). A su vez, las funciones a veces necesitan devolver una matriz.

Cómo devolver una matriz
Cómo devolver una matriz

Necesario

  • - editor de texto;
  • - Compilador y enlazador C o C ++.

Instrucciones

Paso 1

Devuelve datos de una función o método colocándolos en una matriz de longitud fija, asignados por el llamador y pasados por referencia. Defina el tipo de datos apropiado, por ejemplo: typedef int t_array10 [10]; Úselo en la declaración e implementación de la función o método requerido: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Llame apropiadamente: int aNumbers [10]; ReturnArray (aNumbers); La desventaja de este método es que la longitud de la matriz es fija.

Paso 2

Devuelve los datos de la matriz colocándolos en un búfer de salida asignado por el llamador que pasa por un puntero. El prototipo de una función o método puede contener un parámetro declarado en notación de matriz sin especificación de tamaño: void ReturnArray (int anArray , int nSize); o como un puntero: void ReturnArray (int * pnArray, int nSize); en ambos En los casos, el parámetro identificador se puede usar en notación de matriz: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // llamar int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Este método de pasar matrices a funciones y devolver datos de matrices se utiliza en la inmensa mayoría de los casos al desarrollar programas en C. Tenga en cuenta que Las funciones y métodos que aceptan y devuelven datos de esta manera, como regla, deben tener un parámetro adicional a través del cual se pasa el tamaño real del búfer.

Paso 3

Devuelve una matriz creada en una función o método. Formalmente, en este caso, no se debe devolver una matriz, sino un puntero a su primer elemento: int * ReturnArray () {int * pnArray = new int [10]; // trabajar con pnArray return pnArray;} // obtener un puntero al arreglo creado int * pnNumbers = ReturnArray (); // usar delete pnNumbers; // eliminar Este método tiene algunas limitaciones. Entonces, la matriz debe estar ubicada en el montón. Además, su eliminación debe realizarse con el método correspondiente a la creación (eliminar en el caso de utilizar new, free for malloc, etc.).

Paso 4

Utilice clases de contenedor para devolver matrices de forma conveniente al desarrollar programas en C ++. Un ejemplo de creación y devolución de una matriz que es un objeto de la clase de plantilla de vector de la biblioteca de plantillas estándar de C ++ especificada para int podría verse así: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Tenga en cuenta que la mayoría de los marcos populares proporcionan clases poderosas o plantillas de clases de matriz. A menudo implementan el concepto de intercambio de datos implícito con recuento de referencias y copia en escritura. Por lo tanto, la devolución por valor de dichos arreglos de funciones se realiza de manera muy eficiente y está asociada con un consumo mínimo de recursos informáticos.

Recomendado: