Páginas: [1]
|
 |
|
Autor
|
Tema: C Funcion que retorne Arrays????? (Leído 531 veces)
|
cornell
Desconectado
Mensajes: 17
¡Amo YaBB SE!
|
Hola a todos: Estoy recien entrando en el mundo de C y quisiera saber como una funcion puede retornar un arreglo... #include <stdio.h>
main(){ int n[3]; n=Ini(); return 0; }
int[] Ini(){ int a[3]={0,1,2}; return a; }
e tratado de compilar este codigo con el Dev c++... y me arroja error...Lo que quisiera saber es si una funcion puede retornar un arreglo????? Gracias de ante mano... Saludos...
|
|
|
|
|
En línea
|
Utalca
|
|
|
Kpax
Desconectado
Mensajes: 317
|
Pues pasalo por parametro,de ese modo te complicas menos,no estoy seguro de que pueda funcionar pero si quieres pasar una arreglo a otro lo mejor seria usar un bucle.
|
|
|
|
|
En línea
|
En este mundo una de dos
|
|
|
orphen_nb
Desconectado
Mensajes: 128
|
en realidad un arreglo es un puntero, así que lo que tendrias que hacer sería retornar un puntero.
|
|
|
|
|
En línea
|
Human knowledge belongs to the world
|
|
|
HaCkZaTaN
Desconectado
Mensajes: 110
|
ese programa es mal ....no estas devolvio Puntero de ninguna clase.... int main() { int n[3]; *n=Ini();
return 0; }
int Ini() { int a[3]={0,1,2};
return *a; } asi quedaria mucho mejor..si lo queres mas optimizado usa "Casting" Salu2!!
|
|
|
|
|
En línea
|
|
|
|
|
Cobac
|
si pones que devuelves a lo que estas haciendo es devolver la dirección de memoria donde empieza el array
encuentro más facil pasarlo por parametros y si lo modificas en la funcion queda modificado en todo el programa (ya que pasas la dirección de memoria -es lo mismo que pasar las variables por referencia-)
salu2
|
|
|
|
|
En línea
|
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda
En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
|
|
|
cornell
Desconectado
Mensajes: 17
¡Amo YaBB SE!
|
Lo que hice fue lo siguiente... #include <stdio.h>
int a[3];
void Ini(){ a[0]=0; a[1]=1; a[2]=2; }
main(){ Ini(); return 0; }
el vector lo declare como una variable local, ya que busque por internet algun codigo que tuviera una funcion que retornara un arreglo y no encontre ¿Sera que no se puede?... La verdad es que nose esta respuesta....Solo esta fue la unica solucion que encontre... Saludos.
|
|
|
|
|
En línea
|
Utalca
|
|
|
|
Cobac
|
ahora que pienso, quizas quieres hacer esto xD: #include <stdio.h> #include <string.h>
char *funcion(char *p) { strcpy(p,"adios"); return p; } main() { char *frase;
strcpy(frase,"hola"); printf("Antes --> %s\n",frase); printf("Despues --> %s\n",funcion(frase)); } como ves funcion devuelve un puntero a una cadena de caracterés (y es lo que se muestra en el printf) yo lo que me refería en el anterior mensaje, esque cuando llamas a una función y le pasas como parámetro un puntero modificas su contenido (es como pasar una variable por referencia)... salu2 y ya nos contarás 
|
|
|
|
|
En línea
|
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda
En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
|
|
|
|
|
cornell
Desconectado
Mensajes: 17
¡Amo YaBB SE!
|
Este tema lo cree ya que yo empece a programar en java y como uds se dan cuenta en java un metodo(Funcion en c) si puede retornar un array...Se hay que surgio mi pregunta, si es que se puede hacer en java...Sobre lo de los punteros recien estoy aprendiendo que es un punturo, ya que, en java jamas los...De hecho no se si existen en Java????
Solo eso saludos...
|
|
|
|
|
En línea
|
Utalca
|
|
|
|
|
|
Páginas: [1]
|
|
|
|