Autor
|
Tema: Funcion que devuelva un array (Leído 2,853 veces)
|
statham
Desconectado
Mensajes: 19
|
Buenas, es posible que llamando a una función desde el main(por ejemplo u otra) te devuelva un array??
Se que es posible, ya que tu al llamar a la funcion le pasas el array y te rellena los datos.
La cosa viene cuando el tamaño de dicho array no lo sabes hasta que llamas a esa función , entonces como puedes pasarle un array sin saber su tamaño? tampoco podrías igualar dicho array al array que te devuelve la función por que no sabes el tamaño.
Como podria crear un array vacio o un array de tamaño dinamico?
Un saludo.
|
|
« Última modificación: 1 Febrero 2019, 11:17 am por statham »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Debes crear un array de forma dinámica dentro de la función y devolver su puntero. Una vez que dejes de usar debes liberarlo.
*** Muy importante que sea un array dinámico porque se crea en el heap, no en la pila. Si devuelves un puntero a un objeto creado de forma local, en la pila, en un función que va a desaparecer, va a regresar, te encontrarás con problemas de memoria.
|
|
|
En línea
|
|
|
|
EdePC
|
Saludos, - Yo suelo solicitar al usuario el tamaño del array y crearlo en vivo: #include <stdio.h> int main() { int cantidad; printf("Indique la cantidad de elementos del Array: "); int array[cantidad]; for (int i = 0; i < cantidad; i++) { array[i] = i; } for (int i = 0; i < cantidad; i++) { } return 0; }
- Sin embargo he estado leyendo varios libros de programación en C y veo que casi ninguno habla de lo que hago. Es bastante sencillo utilizar el método que expongo, pero por lo que he leído, esto no es Estándar y muchos compiladores darán error. -- Yo uso MinGW (gcc, g++, 6.3.0) y nunca me ha dado problemas al respecto así que ni enterado. - La mayoría de los libros solo hablan de Arrays estáticos (int array[5], #define SIZE 5; int array[SIZE], int array[] = {1, 2, 3, 4, 5}), luego pasan directamente a Arrays dinámicos con punteros y malloc, free y NULL. - Recomiendo este libro gratuito en español que justo trato el tema: Vectores Estáticos (pág. 63), Memoria Dinámica (pág. 213): https://openlibra.com/es/book/introduccion-a-la-programacion-con-c-3-- Y este par más que son bastante prácticos con varios ejemplos con malloc y free: https://openlibra.com/es/book/fundamentos-de-programacion-en-chttps://openlibra.com/es/book/apuntes-de-la-materia-de-programacion-basica
|
|
|
En línea
|
|
|
|
statham
Desconectado
Mensajes: 19
|
Saludos, - Yo suelo solicitar al usuario el tamaño del array y crearlo en vivo: #include <stdio.h> int main() { int cantidad; printf("Indique la cantidad de elementos del Array: "); int array[cantidad]; for (int i = 0; i < cantidad; i++) { array[i] = i; } for (int i = 0; i < cantidad; i++) { } return 0; }
- Sin embargo he estado leyendo varios libros de programación en C y veo que casi ninguno habla de lo que hago. Es bastante sencillo utilizar el método que expongo, pero por lo que he leído, esto no es Estándar y muchos compiladores darán error. -- Yo uso MinGW (gcc, g++, 6.3.0) y nunca me ha dado problemas al respecto así que ni enterado. - La mayoría de los libros solo hablan de Arrays estáticos (int array[5], #define SIZE 5; int array[SIZE], int array[] = {1, 2, 3, 4, 5}), luego pasan directamente a Arrays dinámicos con punteros y malloc, free y NULL. - Recomiendo este libro gratuito en español que justo trato el tema: Vectores Estáticos (pág. 63), Memoria Dinámica (pág. 213): https://openlibra.com/es/book/introduccion-a-la-programacion-con-c-3-- Y este par más que son bastante prácticos con varios ejemplos con malloc y free: https://openlibra.com/es/book/fundamentos-de-programacion-en-chttps://openlibra.com/es/book/apuntes-de-la-materia-de-programacion-basicaBuenas gracias por responder, en mi caso no podria meterlo por teclado o pedirselo al usuario, ya que el tamaño viene indicado en un fichero por tanto hay que leerlo. voy a intentar hacerlo con un array dinamico con puntero, o como solucion al sucia pero valida leere el tamaño del array en el main, creo el array y luego llamare a la funcion pasandole el descriptor del fichero junto con el array. un saludo.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
funcion que devuelva 4 parametros
Programación C/C++
|
mapers
|
3
|
4,728
|
4 Diciembre 2010, 04:51 am
por mapers
|
|
|
Función que devuelva un array (javascript)
Desarrollo Web
|
Fox_Neo
|
5
|
18,504
|
13 Diciembre 2010, 15:31 pm
por Fox_Neo
|
|
|
Funcion que me devuelva un valor PL SQL
Bases de Datos
|
Algotrix
|
1
|
4,692
|
6 Noviembre 2011, 22:50 pm
por Don Pollo
|
|
|
Una funcion que devuelva un entero + un string en c++
Programación C/C++
|
MellaSystems
|
4
|
3,484
|
12 Septiembre 2014, 21:15 pm
por MellaSystems
|
|
|
Funcion que devuelva un array
Programación C/C++
|
davidrodribarri
|
2
|
2,141
|
19 Febrero 2017, 09:49 am
por davidrodribarri
|
|